Skip to content

Commit 155a806

Browse files
committed
feat: className特性完善
1 parent 240644e commit 155a806

File tree

11 files changed

+678
-529
lines changed

11 files changed

+678
-529
lines changed

demos/noengine/engine.js

Lines changed: 123 additions & 94 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demos/noengine/sub/engine.js

Lines changed: 123 additions & 94 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js

Lines changed: 123 additions & 94 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/devtools/src/demos/helloworld.vue

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,17 +59,12 @@ export default defineComponent({
5959
testText.style.backgroundColor = '#f3f3f3'
6060
6161
testText.on('click', () => {
62-
console.log(testText.className)
63-
const newClass = (testText.className === 'testText' ? 'testText redText' : 'testText')
64-
console.log(newClass)
65-
66-
testText.className = newClass
62+
if (testText.classList.contains('redText')) {
63+
testText.classList.remove('redText')
64+
} else {
65+
testText.classList.add('redText')
66+
}
6767
})
68-
69-
// console.log(testText.style.textShadow)
70-
71-
// testText.style.textShadow = '2px 2px 2px blue'
72-
7368
},
7469
},
7570
});

packages/devtools/src/demos/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export default defineComponent({
5151
return {
5252
isDev: true,
5353
54-
tabindex: 0,
54+
tabindex: 4,
5555
};
5656
},
5757
mounted() {

packages/devtools/src/demos/ranklist.vue

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ let style = {
6666
},
6767
rankList: {
6868
width: 960,
69-
height: 1000,
69+
height: 1410 - 120,
7070
backgroundColor: "#ffffff",
7171
},
7272
list: {
@@ -128,7 +128,7 @@ let style = {
128128
},
129129
selfListItem: {
130130
borderRadius: 20,
131-
marginTop: 50,
131+
marginTop: 20,
132132
backgroundColor: "#ffffff",
133133
},
134134
listTips: {
@@ -194,6 +194,18 @@ export default defineComponent({
194194
195195
const list = Layout.getElementById('list');
196196
197+
const selfListItem = Layout.getElementsByClassName('listItem')[0]
198+
199+
selfListItem.on('click', () => {
200+
if (selfListItem.classList.contains('listItemOld')) {
201+
selfListItem.classList.remove('listItemOld');
202+
selfListItem.classList.remove('selfListItem');
203+
} else {
204+
selfListItem.classList.add('listItemOld');
205+
selfListItem.classList.add('selfListItem');
206+
}
207+
})
208+
197209
// @ts-ignore
198210
window.list = list;
199211
},

packages/plugin/plugin/engine.js

Lines changed: 123 additions & 94 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/common/tokenList.ts

Lines changed: 36 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,37 @@
11
class TokenList {
2-
constructor(initialTokens) {
3-
this.tokens = new Set(initialTokens || []);
4-
}
5-
6-
// 添加一个令牌
7-
add(token) {
8-
this.tokens.add(token);
9-
}
10-
11-
// 删除一个令牌
12-
remove(token) {
13-
this.tokens.delete(token);
14-
}
15-
16-
// 检查列表中是否存在指定的令牌
17-
contains(token) {
18-
return this.tokens.has(token);
19-
}
20-
21-
// 返回列表中的令牌数
22-
get length() {
23-
return this.tokens.size;
24-
}
25-
26-
// 将令牌列表转换为字符串
27-
toString() {
28-
return Array.from(this.tokens).join(' ');
29-
}
30-
31-
// 获取令牌列表的值(values)数组
32-
get values() {
33-
return Array.from(this.tokens);
34-
}
35-
36-
// 将字符串转换为令牌列表
37-
static fromString(str) {
38-
return new TokenList(str.split(/\s+/));
39-
}
40-
}
2+
public tokens: Set<string>
3+
4+
constructor(initialTokens: string) {
5+
this.tokens = new Set(initialTokens || []);
6+
}
7+
8+
// 返回列表中的令牌数
9+
get length() {
10+
return this.tokens.size;
11+
}
12+
13+
// 获取令牌列表的值(values)数组
14+
get values() {
15+
return Array.from(this.tokens);
16+
}
17+
18+
// 将令牌列表转换为字符串
19+
get value() {
20+
return Array.from(this.tokens).join(' ');
21+
}
22+
23+
// 添加一个令牌
24+
add(token: string) {
25+
this.tokens.add(token);
26+
}
27+
28+
// 检查列表中是否存在指定的令牌
29+
contains(token: string) {
30+
return this.tokens.has(token);
31+
}
32+
33+
// 删除一个令牌
34+
remove(token: string) {
35+
this.tokens.delete(token);
36+
}
37+
}

src/common/util.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,4 +79,19 @@ export function clamp(number: number, min: number, max: number): number {
7979
*/
8080
export function lerp(from: number, to: number, ratio: number): number {
8181
return from + (to - from) * ratio;
82-
}
82+
}
83+
84+
export function convertPercent(data: string | number, parentData: number) {
85+
if (typeof data === 'number' || data === null) {
86+
return data;
87+
}
88+
89+
const matchData = data.match(/(\d+(?:\.\d+)?)%/);
90+
if (matchData && matchData[1]) {
91+
return parentData * parseFloat(matchData[1]) * 0.01;
92+
}
93+
}
94+
95+
export function isPercent(data: string | number) {
96+
return typeof data === 'string' && /\d+(?:\.\d+)?%/.test(data);
97+
}

src/common/vd.ts

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { View, Text, Image, ScrollView, BitMapText, Canvas, Element, Button } fr
44
import { IStyle } from '../components/style';
55
import { ILayout, ILayoutBox } from '../components/elements';
66
import { Callback, TreeNode } from '../types';
7+
import { convertPercent, isPercent } from './util';
78
import env from '../env';
89

910
interface Constructor {
@@ -24,21 +25,6 @@ export function registerComponent(name: string, Constructor: Constructor) {
2425
constructorMap[name] = Constructor;
2526
}
2627

27-
export function isPercent(data: string | number) {
28-
return typeof data === 'string' && /\d+(?:\.\d+)?%/.test(data);
29-
}
30-
31-
export function convertPercent(data: string | number, parentData: number) {
32-
if (typeof data === 'number' || data === null) {
33-
return data;
34-
}
35-
36-
const matchData = data.match(/(\d+(?:\.\d+)?)%/);
37-
if (matchData && matchData[1]) {
38-
return parentData * parseFloat(matchData[1]) * 0.01;
39-
}
40-
}
41-
4228
export function create(node: TreeNode, style: Record<string, IStyle>, parent?: Record<string, any>) {
4329
const Constructor = constructorMap[node.name];
4430

0 commit comments

Comments
 (0)