先暂时不用私有域,太麻烦了

This commit is contained in:
枫谷剑仙 2022-07-06 17:17:50 +08:00
parent 2be55678f3
commit e2d633dcc4
4 changed files with 120 additions and 39 deletions

View File

@ -3,7 +3,7 @@
{name: "Optional chaining (?.) / 可选链操作符(?.)", url: "https://caniuse.com/mdn-javascript_operators_optional_chaining", test: ()=>!Boolean(eval("undefined?.undefined || true"))},
{name: "Nullish coalescing operator (??) / 空值合并操作符(??)", url: "https://caniuse.com/mdn-javascript_operators_nullish_coalescing", test: ()=>!Boolean(eval("undefined ?? true"))},
{name: "BigInt value (1n) / BigInt 数据类型(1n)", url: "https://caniuse.com/bigint", test: ()=>!Boolean(eval("1n"))},
{name: "Private class fields (#name) / 类私有域(#name)", url: "https://caniuse.com/mdn-javascript_classes_private_class_fields", test: ()=>!Boolean(eval("class test {#v = 0;}; true;"))},
//{name: "Private class fields (#name) / 类私有域(#name)", url: "https://caniuse.com/mdn-javascript_classes_private_class_fields", test: ()=>!Boolean(eval("class test {#v = 0;}; true;"))},
]
return features.filter(feature=>{
try {

View File

@ -120,6 +120,7 @@ Math.randomInteger = function(max, min = 0) {
return this.floor(this.random() * (max - min + 1) + min);
}
// Create a class for the element
class CardAvatar extends HTMLElement {
// Specify observed attributes so that
@ -127,14 +128,33 @@ class CardAvatar extends HTMLElement {
static get observedAttributes() {
return ['id'];
}
#id = 0;
/*#id = 0;
get id() {
return this.#id;
}
}*/
id = 0;
/**
* @param {string | number} x
*/
set id(x) {
this.setAttribute('id', x);
//this.#id = x; //在属性改变的内容里已经写入了
}
//#member = new Member();
/**
* @param {Member} m
*/
/*get member() {
return this.#member;
}*/
/**
* @param {Member} m
*/
/*set member(m) {
this.#member = m;
console.log("设定新的Member",m);
this.setAttribute('id', m.id);
}*/
constructor() {
// Always call super first in constructor
@ -156,8 +176,28 @@ class CardAvatar extends HTMLElement {
const dAttr2 = wrapper.appendChild(document.createElement('div'));
dAttr2.className = 'attribute attribute-sub';
const dId = wrapper.appendChild(document.createElement('div'));
const dLeftTop = wrapper.appendChild(document.createElement('div'));
dLeftTop.className = "flex-box flex-left-top";
const dLeftBottom = wrapper.appendChild(document.createElement('div'));
dLeftBottom.className = "flex-box flex-left-bottom";
const dRightTop = wrapper.appendChild(document.createElement('div'));
dRightTop.className = "flex-box flex-right-top";
const dRightBottom = wrapper.appendChild(document.createElement('div'));
dRightBottom.className = "flex-box flex-right-bottom";
const dId = dLeftBottom.appendChild(document.createElement('div'));
dId.className = 'card-id';
const dLevel = dLeftBottom.appendChild(document.createElement('div'));
dLevel.className = 'level';
dLevel.textContent = "110";
const dEnhancement = dLeftTop.appendChild(document.createElement('div'));
dEnhancement.className = 'enhancement';
dEnhancement.textContent = "297";
const dActiveSkillCD = dRightBottom.appendChild(document.createElement('div'));
dActiveSkillCD.className = 'active-skill-cd';
dActiveSkillCD.textContent = "99";
}
connectedCallback() {
console.log('自定义标签添加到页面');
@ -165,12 +205,14 @@ class CardAvatar extends HTMLElement {
}
attributeChangedCallback(name, oldValue, newValue) {
console.log('自定义标签属性改变', name, oldValue, newValue);
if (name == 'id') this.#id = parseInt(this.getAttribute('id'));
//if (name == 'id') this.#id = parseInt(this.getAttribute('id'));
if (name == 'id') this.id = parseInt(this.getAttribute('id'));
this.update();
}
update() {
//得到怪物ID
const id = this.#id || 0;
//const id = this.#id || 0;
const id = this.id || 0;
const card = Cards[id] || Cards[0];
const dataSource = this.getAttribute('source') || currentDataSource.code;
const shadow = this.shadowRoot;

View File

@ -5963,7 +5963,7 @@ const cachesMap = new Map([
],
[
"browser-compatibility.js",
"b32e4fcaf3a203d77f1febf9bcc59859"
"91b2a026dff2d78dc9bc27d6b37c0e88"
],
[
"index.html",
@ -5983,7 +5983,7 @@ const cachesMap = new Map([
],
[
"script-universal_function.js",
"a33e51e967e2f43d4681dd151ba354d1"
"10eabc7ba4b17d6be72ec997f8ddb682"
],
[
"script.js",
@ -5995,7 +5995,7 @@ const cachesMap = new Map([
],
[
"style-card.css",
"6e18c2ab05a264530b6af07a6d181368"
"a3ecc88c3845113f867aaabe1d483645"
],
[
"style-monsterimages.css",

View File

@ -2,12 +2,37 @@
.wrapper{
color: white;
font-family: var(--game-font-family);
font-size: 15px;
line-height: 15px;
text-shadow: black 0 0 2px, black 2px 2px 0;
display: inline-block;
position: relative;
width: 100px;
height: 100px;
}
/*宠物在图中编号对应的坐标*/
.wrapper[data-cards-pic-x='0']{background-position-x:calc(-102px * 0);}
.wrapper[data-cards-pic-x='1']{background-position-x:calc(-102px * 1);}
.wrapper[data-cards-pic-x='2']{background-position-x:calc(-102px * 2);}
.wrapper[data-cards-pic-x='3']{background-position-x:calc(-102px * 3);}
.wrapper[data-cards-pic-x='4']{background-position-x:calc(-102px * 4);}
.wrapper[data-cards-pic-x='5']{background-position-x:calc(-102px * 5);}
.wrapper[data-cards-pic-x='6']{background-position-x:calc(-102px * 6);}
.wrapper[data-cards-pic-x='7']{background-position-x:calc(-102px * 7);}
.wrapper[data-cards-pic-x='8']{background-position-x:calc(-102px * 8);}
.wrapper[data-cards-pic-x='9']{background-position-x:calc(-102px * 9);}
.wrapper[data-cards-pic-y='0']{background-position-y:calc(-102px * 0);}
.wrapper[data-cards-pic-y='1']{background-position-y:calc(-102px * 1);}
.wrapper[data-cards-pic-y='2']{background-position-y:calc(-102px * 2);}
.wrapper[data-cards-pic-y='3']{background-position-y:calc(-102px * 3);}
.wrapper[data-cards-pic-y='4']{background-position-y:calc(-102px * 4);}
.wrapper[data-cards-pic-y='5']{background-position-y:calc(-102px * 5);}
.wrapper[data-cards-pic-y='6']{background-position-y:calc(-102px * 6);}
.wrapper[data-cards-pic-y='7']{background-position-y:calc(-102px * 7);}
.wrapper[data-cards-pic-y='8']{background-position-y:calc(-102px * 8);}
.wrapper[data-cards-pic-y='9']{background-position-y:calc(-102px * 9);}
/*怪物边框*/
.attribute { /*主属性*/
@ -43,37 +68,30 @@
background-image: url(images/CARDFRAMEW.PNG);
background-position: 0 0;
}
/*宠物在图中编号对应的坐标*/
.wrapper[data-cards-pic-x='0']{background-position-x:calc(-102px * 0);}
.wrapper[data-cards-pic-x='1']{background-position-x:calc(-102px * 1);}
.wrapper[data-cards-pic-x='2']{background-position-x:calc(-102px * 2);}
.wrapper[data-cards-pic-x='3']{background-position-x:calc(-102px * 3);}
.wrapper[data-cards-pic-x='4']{background-position-x:calc(-102px * 4);}
.wrapper[data-cards-pic-x='5']{background-position-x:calc(-102px * 5);}
.wrapper[data-cards-pic-x='6']{background-position-x:calc(-102px * 6);}
.wrapper[data-cards-pic-x='7']{background-position-x:calc(-102px * 7);}
.wrapper[data-cards-pic-x='8']{background-position-x:calc(-102px * 8);}
.wrapper[data-cards-pic-x='9']{background-position-x:calc(-102px * 9);}
.wrapper[data-cards-pic-y='0']{background-position-y:calc(-102px * 0);}
.wrapper[data-cards-pic-y='1']{background-position-y:calc(-102px * 1);}
.wrapper[data-cards-pic-y='2']{background-position-y:calc(-102px * 2);}
.wrapper[data-cards-pic-y='3']{background-position-y:calc(-102px * 3);}
.wrapper[data-cards-pic-y='4']{background-position-y:calc(-102px * 4);}
.wrapper[data-cards-pic-y='5']{background-position-y:calc(-102px * 5);}
.wrapper[data-cards-pic-y='6']{background-position-y:calc(-102px * 6);}
.wrapper[data-cards-pic-y='7']{background-position-y:calc(-102px * 7);}
.wrapper[data-cards-pic-y='8']{background-position-y:calc(-102px * 8);}
.wrapper[data-cards-pic-y='9']{background-position-y:calc(-102px * 9);}
.flex-box {
display: block flex;
width: 100%;
height: 100%;
position:absolute;
left:0;top:0;
flex-direction: column; /* 内容纵向排列 */
}
.flex-left-top {
}
.flex-left-bottom {
justify-content: flex-end; /*从下往上*/
}
.flex-right-top {
align-items: flex-end; /*靠右*/
}
.flex-right-bottom {
justify-content: flex-end; /*从下往上*/
align-items: flex-end; /*靠右*/
}
.card-id {
color: white;
/*font-family: var(--game-font-family);*/
font-size: 15px;
/*text-shadow: black 0px 0px 2px,black -1px -1px 1px,black 1px 1px 1px,black 1px -1px 1px,black -1px 1px 1px;*/
text-shadow: black 0px 0px 2px,black 1px 1px 1px;
position: absolute;
left: 5px;
bottom: 15px;
font-family: var(--font-family);
}
.card-id::before {
content: "No.";
@ -82,4 +100,25 @@
}
.card-id::after {
content: attr(data-id);
}
.level {
}
.level::before {
content: "Lv.";
font-size: 0.7em; /*火狐*/
zoom: 0.7; /*Chrome*/
}
.enhancement { /*加点*/
color: yellow;
}
.enhancement::before {
content: "+";
}
.active-skill-cd {
font-size: 13px;
}
.active-skill-cd::before {
content: "CD";
font-size: 0.7em; /*火狐*/
zoom: 0.7; /*Chrome*/
}