efront 4.11.1 → 4.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/coms/compile/Program.js +9 -2
- package/coms/compile//347/264/240/351/246/250.js +25 -19
- package/coms/compile//347/264/240/351/246/250_test.js +1 -0
- package/coms/docs/codetext.xht +1 -0
- package/coms/frame/chat.js +1 -1
- package/coms/kugou/api.js +1 -1
- package/coms/kugou/player.js +3 -0
- package/coms/zimoli/addClass.js +19 -16
- package/coms/zimoli/css.js +12 -1
- package/coms/zimoli/getGenerator.js +9 -15
- package/coms/zimoli/menuList.js +29 -23
- package/coms/zimoli/on.js +8 -0
- package/coms/zimoli/removeClass.js +4 -6
- package/coms/zimoli/render.js +122 -64
- package/coms/zimoli/table.js +2 -0
- package/coms/zimoli/vbox.js +2 -1
- package/package.json +1 -1
- package/public/efront.js +1 -1
package/coms/compile/Program.js
CHANGED
|
@@ -190,7 +190,14 @@ class Program {
|
|
|
190
190
|
var rowsOf = m => m.replace(/[^\r\n\u2028\u2029]+/g, ';').replace(/\r\n|\r|\n|\u2028|\u2029/g, ' ').replace(/;/g, '').length;
|
|
191
191
|
var setRows = m => {
|
|
192
192
|
row += rowsOf(m);
|
|
193
|
-
|
|
193
|
+
var reg = /[\r\n\u2028\u2029]/g;
|
|
194
|
+
reg.lastIndex = 0;
|
|
195
|
+
var index = 0;
|
|
196
|
+
do {
|
|
197
|
+
index = reg.lastIndex;
|
|
198
|
+
var match = reg.exec(m);
|
|
199
|
+
} while (match);
|
|
200
|
+
colstart = start + index;
|
|
194
201
|
};
|
|
195
202
|
var queue_push = (scope) => {
|
|
196
203
|
if (scope.type & (SPACE | COMMENT | PIECE | QUOTED)) {
|
|
@@ -904,7 +911,7 @@ class Program {
|
|
|
904
911
|
if (p.tag) p.type = ELEMENT;
|
|
905
912
|
queue_push(p);
|
|
906
913
|
}
|
|
907
|
-
}
|
|
914
|
+
}
|
|
908
915
|
if (cache_stamp) push_stamp();
|
|
909
916
|
this.lastIndex = index;
|
|
910
917
|
if (queue !== origin) {
|
|
@@ -198,29 +198,35 @@ macros.escape = function (a) {
|
|
|
198
198
|
macros.e = function (a) {
|
|
199
199
|
return strings.decode(a);
|
|
200
200
|
};
|
|
201
|
-
var wrapColor = function (
|
|
202
|
-
|
|
201
|
+
var wrapColor = function (k) {
|
|
202
|
+
var f = color[k];
|
|
203
|
+
macros[k] = function (c) {
|
|
203
204
|
if (color.isColor(c)) return f(...arguments);
|
|
204
|
-
return
|
|
205
|
-
}
|
|
206
|
-
}
|
|
205
|
+
return `${k}(${Array.apply(null, arguments).join(',')})`;
|
|
206
|
+
};
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
[
|
|
210
|
+
"saturate",
|
|
211
|
+
"desaturate",
|
|
212
|
+
"lighten",
|
|
213
|
+
"darken",
|
|
214
|
+
"fadein",
|
|
215
|
+
"fadeout",
|
|
216
|
+
"fade",
|
|
217
|
+
"spin",
|
|
218
|
+
"mix",
|
|
219
|
+
"tint",
|
|
220
|
+
"shade",
|
|
221
|
+
"grayscale",
|
|
222
|
+
"grayluma",
|
|
223
|
+
"fade"
|
|
224
|
+
].forEach(wrapColor);
|
|
225
|
+
|
|
207
226
|
macros[""] = function (a) {
|
|
208
227
|
return a;
|
|
209
228
|
};
|
|
210
|
-
|
|
211
|
-
macros.desaturate = wrapColor(color.desaturate);
|
|
212
|
-
macros.lighten = wrapColor(color.lighten);
|
|
213
|
-
macros.darken = wrapColor(color.darken);
|
|
214
|
-
macros.fadein = wrapColor(color.fadein);
|
|
215
|
-
macros.fadeout = wrapColor(color.fadeout);
|
|
216
|
-
macros.fade = wrapColor(color.fade);
|
|
217
|
-
macros.spin = wrapColor(color.spin);
|
|
218
|
-
macros.mix = wrapColor(color.mix);
|
|
219
|
-
macros.tint = wrapColor(color.tint);
|
|
220
|
-
macros.shade = wrapColor(color.shade);
|
|
221
|
-
macros.grayscale = wrapColor(color.grayscale);
|
|
222
|
-
macros.grayluma = wrapColor(color.grayluma);
|
|
223
|
-
macros.fade = wrapColor(color.fade);
|
|
229
|
+
|
|
224
230
|
macros.each = function (list, body) {
|
|
225
231
|
var match = /^(?:\s*[#\.]?\(([\s\S]*?)\))?\s*\{([\s\S]*)\}$/.exec(body);
|
|
226
232
|
if (!match) throw new Error(i18n`each参数异常!`);
|
|
@@ -74,6 +74,7 @@ assert(素馨(`@media screen{&.a{b:1}}`, 'a'), `@media screen{a.a{b:1;}}`);
|
|
|
74
74
|
assert(素馨(`@media screen and(max-width:100px){&.a{b:1}}`, 'a'), `@media screen and (max-width:100px){a.a{b:1;}}`);
|
|
75
75
|
assert(素馨(`b{:not([resizing], [dragging]) {transition: padding .2s, margin .2s;}}`), `b :not([resizing], [dragging]){transition:padding .2s, margin .2s;}`);
|
|
76
76
|
assert(素馨(`@a(@b){a@b{@w:@b/2;c:@w;}} @a(1); @a(2); @a(3)`), `a1{c:0.5;}\r\na2{c:1;}\r\na3{c:1.5;}`);
|
|
77
|
+
assert(素馨(`a{filter:grayscale(.9)}`), `a{filter:grayscale(.9);}`);
|
|
77
78
|
assert(scanner2(`-0.2em .3em -0.2em 0`, new 素馨.素心)[0].text, '-0.2em');
|
|
78
79
|
assert(scanner2(`-0.2em .3em -0.2em 0`, new 素馨.素心)[0].isdigit, true);
|
|
79
80
|
assert(scanner2(`-0.2em .3em -0.2em 0`, new 素馨.素心)[2].text, ".3em");
|
package/coms/docs/codetext.xht
CHANGED
|
@@ -294,6 +294,7 @@
|
|
|
294
294
|
codesupports.cjs = codesupports.mjs = codesupports.jsx = codesupports.js = codesupports.javascript;
|
|
295
295
|
codesupports.tsx = codesupports.ts = codesupports.typescript;
|
|
296
296
|
codesupports.xht = codesupports.jsp = codesupports.asp = codesupports.php = codesupports.xml = codesupports.html;
|
|
297
|
+
codesupports.vue = codesupports.xht;
|
|
297
298
|
var { SCOPED, QUOTED, SPACE, STAMP, STRAP, EXPRESS, PROPERTY } = compile$common;
|
|
298
299
|
var patchBlink = function (code, index, blink) {
|
|
299
300
|
for (var cx = 0, dx = code.length; cx < dx; cx++) {
|
package/coms/frame/chat.js
CHANGED
package/coms/kugou/api.js
CHANGED
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"download-krc;accesskey&id": "get:content download?ver=1&client=pc&fmt=krc&charset=utf8"
|
|
47
47
|
},
|
|
48
48
|
"https://music.91q.com/": {// 千千静听/百度音乐
|
|
49
|
-
"search-qqjt
|
|
49
|
+
"search-qqjt?word": "get:data.typeTrack v1/search#songname=title&singername=artist<、>.name&avatar=pic&priced=isVip",
|
|
50
50
|
"qqjt-url?TSID": "get:data v1/song/tracklink#url=path"
|
|
51
51
|
}
|
|
52
52
|
})
|
package/coms/kugou/player.js
CHANGED
|
@@ -67,15 +67,18 @@ on("keydown")(window, function (event) {
|
|
|
67
67
|
if (!$scope.audio && !kugou$musicList.getActived()) return;
|
|
68
68
|
switch (event.keyCode || event.which) {
|
|
69
69
|
case 32:
|
|
70
|
+
case 179:
|
|
70
71
|
if (event.repeat) break;
|
|
71
72
|
if ($scope.playing) $scope.pause();
|
|
72
73
|
else $scope.play();
|
|
73
74
|
break;
|
|
74
75
|
case 37:
|
|
76
|
+
case 177:
|
|
75
77
|
// left
|
|
76
78
|
$scope.play($scope.index - 1);
|
|
77
79
|
break;
|
|
78
80
|
case 39:
|
|
81
|
+
case 176:
|
|
79
82
|
$scope.play($scope.index + 1);
|
|
80
83
|
// right
|
|
81
84
|
break;
|
package/coms/zimoli/addClass.js
CHANGED
|
@@ -1,25 +1,28 @@
|
|
|
1
|
+
var classToMap = function (className) {
|
|
2
|
+
if (isString(className)) className = className.trim().split(/\s+/);
|
|
3
|
+
if (isArray(className)) {
|
|
4
|
+
var classMap = Object.create(null);
|
|
5
|
+
for (var c of className) {
|
|
6
|
+
if (isString(c)) classMap[c] = true;
|
|
7
|
+
else Object.assign(classMap, classToMap(c));
|
|
8
|
+
}
|
|
9
|
+
return classMap;
|
|
10
|
+
}
|
|
11
|
+
else if (isObject(className)) return className;
|
|
12
|
+
return Object.create(null);
|
|
13
|
+
};
|
|
1
14
|
function addClass(target, classNames) {
|
|
2
15
|
var _className = target.className;
|
|
3
16
|
var arr = String(_className || "").trim().split(/\s+/);
|
|
4
|
-
var cls =
|
|
17
|
+
var cls = Object.create(null);
|
|
5
18
|
for (var cx = 0, dx = arr.length; cx < dx; cx++) {
|
|
6
19
|
var c = arr[cx];
|
|
7
20
|
if (c) cls[c] = true;
|
|
8
21
|
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
for (var cx = 0, dx = clsNames.length; cx < dx; cx++) {
|
|
12
|
-
var c = clsNames[cx];
|
|
13
|
-
if (c) cls[c] = true;
|
|
14
|
-
}
|
|
15
|
-
} else {
|
|
16
|
-
merge(cls, classNames);
|
|
17
|
-
}
|
|
22
|
+
classNames = classToMap(classNames);
|
|
23
|
+
Object.assign(cls, classNames);
|
|
18
24
|
var newarr = [];
|
|
19
|
-
for (var k in cls)
|
|
20
|
-
if (k && cls[k]) {
|
|
21
|
-
newarr.push(k);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
25
|
+
for (var k in cls) if (k && cls[k]) newarr.push(k);
|
|
24
26
|
target.className = newarr.join(" ");
|
|
25
|
-
}
|
|
27
|
+
}
|
|
28
|
+
addClass.classToMap = classToMap;
|
package/coms/zimoli/css.js
CHANGED
|
@@ -109,6 +109,16 @@ var cssTargetNode = function (targetNode, oStyle, oValue) {
|
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
};
|
|
112
|
+
var styleToMap = function (style) {
|
|
113
|
+
if (isString(style)) return parseKV(style, ';', ':');
|
|
114
|
+
if (isObject(style)) return style;
|
|
115
|
+
if (isArray(style)) {
|
|
116
|
+
var styleMap = Object.create(null);
|
|
117
|
+
for (var s of style) extend(styleMap, styleToMap(s));
|
|
118
|
+
return styleMap;
|
|
119
|
+
}
|
|
120
|
+
return Object.create(null);
|
|
121
|
+
}
|
|
112
122
|
/**
|
|
113
123
|
* 将样式绑定到选择器
|
|
114
124
|
* @param {string} targetSelector
|
|
@@ -185,4 +195,5 @@ var css = function (target, oStyle, oValue) {
|
|
|
185
195
|
};
|
|
186
196
|
css.transformCssKey = transformCssKey;
|
|
187
197
|
css.transformNodeKey = transformNodeKey;
|
|
188
|
-
css.transformValue = transformValue;
|
|
198
|
+
css.transformValue = transformValue;
|
|
199
|
+
css.styleToMap = styleToMap;
|
|
@@ -11,18 +11,7 @@ var cloneChildNodes = function (template) {
|
|
|
11
11
|
}
|
|
12
12
|
return cNodes;
|
|
13
13
|
}
|
|
14
|
-
|
|
15
|
-
if (!src) return dst;
|
|
16
|
-
if (!dst) return src;
|
|
17
|
-
if (dst instanceof Array) {
|
|
18
|
-
return dst.concat(src);
|
|
19
|
-
}
|
|
20
|
-
if (isObject(dst)) return Object.assign(dst, src);
|
|
21
|
-
return src;
|
|
22
|
-
};
|
|
23
|
-
var mergeStruct = function (struct1, struct2) {
|
|
24
|
-
for (var k in struct2) struct1[k] = merge(struct1[k], struct2[k]);
|
|
25
|
-
}
|
|
14
|
+
|
|
26
15
|
/**
|
|
27
16
|
* @param {Element} container
|
|
28
17
|
* @param {Element|string} tagName;
|
|
@@ -67,8 +56,7 @@ var getGenerator = function (container, tagName = 'item') {
|
|
|
67
56
|
if (tagTemplate) {
|
|
68
57
|
render.struct(tagName);
|
|
69
58
|
var template0 = templates[0];
|
|
70
|
-
mergeStruct(tagName.$struct, template0.$struct);
|
|
71
|
-
template0.$struct = tagName.$struct;
|
|
59
|
+
template0.$struct = render.mergeStruct(tagName.$struct, template0.$struct);
|
|
72
60
|
template0.$renderid = tagName.$renderid;
|
|
73
61
|
}
|
|
74
62
|
if (templates.length) container.$template = template;
|
|
@@ -94,8 +82,13 @@ var getGenerator = function (container, tagName = 'item') {
|
|
|
94
82
|
}
|
|
95
83
|
var scopes = container.$generatorScopes;
|
|
96
84
|
var parsedSrc = container.$src;
|
|
85
|
+
var wraped = undefined;
|
|
86
|
+
if (com instanceof Item) {
|
|
87
|
+
wraped = com;
|
|
88
|
+
com = com.value;
|
|
89
|
+
}
|
|
97
90
|
if (parsedSrc) {
|
|
98
|
-
var newScope = parsedSrc.createScope(com, index, index);
|
|
91
|
+
var newScope = parsedSrc.createScope(com, index, index, wraped);
|
|
99
92
|
} else {
|
|
100
93
|
var newScope = container.src[index];
|
|
101
94
|
if (!isObject(newScope)) newScope = {
|
|
@@ -115,6 +108,7 @@ var getGenerator = function (container, tagName = 'item') {
|
|
|
115
108
|
return this.$item;
|
|
116
109
|
}
|
|
117
110
|
}
|
|
111
|
+
if (wraped) newScope.$wraped = wraped;
|
|
118
112
|
}
|
|
119
113
|
element.$scope = newScope;
|
|
120
114
|
element.$parentScopes = scopes;
|
package/coms/zimoli/menuList.js
CHANGED
|
@@ -123,7 +123,8 @@ function main() {
|
|
|
123
123
|
var main = this;
|
|
124
124
|
if (direction == 'y') page.ispop = true;
|
|
125
125
|
var istoolbar = direction === 't';
|
|
126
|
-
function popMenu(
|
|
126
|
+
function popMenu(target) {
|
|
127
|
+
var item = getMenu(target);
|
|
127
128
|
if (page.actived) {
|
|
128
129
|
clear();
|
|
129
130
|
page.focus();
|
|
@@ -173,7 +174,7 @@ function main() {
|
|
|
173
174
|
enterMenuEnabled = false;
|
|
174
175
|
if (page.ispop) {
|
|
175
176
|
page.setFocus(menu);
|
|
176
|
-
popMenu(menu
|
|
177
|
+
popMenu(menu);
|
|
177
178
|
}
|
|
178
179
|
}, 60);
|
|
179
180
|
on('pointerdown')(page, unblur);
|
|
@@ -181,34 +182,36 @@ function main() {
|
|
|
181
182
|
document.activeElement.blur();
|
|
182
183
|
};
|
|
183
184
|
var activeMenu = function () {
|
|
184
|
-
|
|
185
|
+
const thismenu = getMenu(this);
|
|
186
|
+
if (thismenu.line) return;
|
|
185
187
|
if (this.hasAttribute("disabled") || this.hasAttribute('line')) return;
|
|
186
|
-
var pop = active(
|
|
188
|
+
var pop = active(thismenu.value, this);
|
|
187
189
|
if (pop === false) return;
|
|
188
190
|
var root = page.root || page;
|
|
189
191
|
var istool = root.direction === 't' || root.selected
|
|
190
192
|
if (root.ispop === 1) root.ispop = false;
|
|
191
193
|
if (istool) {
|
|
192
|
-
var menu =
|
|
194
|
+
var menu = thismenu;
|
|
193
195
|
if (root.selected) root.selected.setActive(false);
|
|
194
196
|
if (root !== page) {
|
|
195
197
|
var target = root.actived.target;
|
|
196
198
|
if (isObject(menu.value)) delete menu.value.children;
|
|
197
|
-
target
|
|
198
|
-
menu
|
|
199
|
+
var targetmenu = getMenu(target);
|
|
200
|
+
targetmenu.extends(menu.value);
|
|
201
|
+
menu = targetmenu;
|
|
199
202
|
}
|
|
200
203
|
else {
|
|
201
204
|
target = this;
|
|
202
205
|
}
|
|
203
206
|
menu.setActive(true);
|
|
204
|
-
root.selected = target
|
|
207
|
+
root.selected = getMenu(target);
|
|
205
208
|
autoremove();
|
|
206
209
|
return;
|
|
207
210
|
}
|
|
208
211
|
if (page.actived && page.actived.target === this) {
|
|
209
212
|
if (mounted_menus.indexOf(page.actived) >= 0) while (mounted_menus.length && mounted_menus[mounted_menus.length - 1] !== page.actived) remove(mounted_menus.pop());
|
|
210
213
|
if (!mounted_menus.length || page === mounted_menus[mounted_menus.length - 1]) {
|
|
211
|
-
popMenu(this
|
|
214
|
+
popMenu(this, false);
|
|
212
215
|
}
|
|
213
216
|
else {
|
|
214
217
|
remove(mounted_menus.pop());
|
|
@@ -218,7 +221,7 @@ function main() {
|
|
|
218
221
|
else {
|
|
219
222
|
while (mounted_menus.length && mounted_menus[mounted_menus.length - 1] !== page) remove(mounted_menus.pop());
|
|
220
223
|
page.actived = null;
|
|
221
|
-
popMenu(this
|
|
224
|
+
popMenu(this, false);
|
|
222
225
|
if (!page.actived) {
|
|
223
226
|
autoremove();
|
|
224
227
|
}
|
|
@@ -226,7 +229,7 @@ function main() {
|
|
|
226
229
|
};
|
|
227
230
|
var pressMenu = function (event) {
|
|
228
231
|
if (event.which === 3) {
|
|
229
|
-
popMenu(this
|
|
232
|
+
popMenu(this);
|
|
230
233
|
}
|
|
231
234
|
else {
|
|
232
235
|
switchMenu.done = false;
|
|
@@ -241,7 +244,7 @@ function main() {
|
|
|
241
244
|
|
|
242
245
|
var switchMenu = lazy(function (event) {
|
|
243
246
|
if (onclick.preventClick) return;
|
|
244
|
-
popMenu(this
|
|
247
|
+
popMenu(this);
|
|
245
248
|
switchMenu.done = true;
|
|
246
249
|
}, 300);
|
|
247
250
|
var hasIcon = function () {
|
|
@@ -255,11 +258,10 @@ function main() {
|
|
|
255
258
|
};
|
|
256
259
|
var $scope = {
|
|
257
260
|
"menu-item"(e, s) {
|
|
258
|
-
if (e && s === e.$scope) s = itemName ? s[itemName] : s.
|
|
261
|
+
if (e && s === e.$scope) s = itemName ? s[itemName] : s.$item.value;
|
|
259
262
|
var a = button(
|
|
260
263
|
menuItem(e, s, this.hasIcon)
|
|
261
264
|
);
|
|
262
|
-
a.menu = s;
|
|
263
265
|
return a;
|
|
264
266
|
},
|
|
265
267
|
hasIcon: hasIcon(),
|
|
@@ -270,9 +272,9 @@ function main() {
|
|
|
270
272
|
if (!page.$src) page.$src = render.parseRepeat("m in menus");
|
|
271
273
|
var src = page.$src;
|
|
272
274
|
var itemName = src.itemName;
|
|
273
|
-
var className = `{'has-children':$
|
|
274
|
-
|
|
275
|
-
actived:$
|
|
275
|
+
var className = `{'has-children':$item.children&&$item.children.length,
|
|
276
|
+
warn:$item.warn,
|
|
277
|
+
actived:$item.isActived()
|
|
276
278
|
}`;
|
|
277
279
|
var notHidden = `!${itemName}.hidden`;
|
|
278
280
|
var ItemTemplate = document.createElement('menu-item');
|
|
@@ -281,7 +283,6 @@ function main() {
|
|
|
281
283
|
else ItemTemplate.setAttribute("on-mouseenter", `enterMenu(this)`);
|
|
282
284
|
ItemTemplate.setAttribute("e-class", className);
|
|
283
285
|
if (src.itemName) ItemTemplate.setAttribute("e-if", notHidden);
|
|
284
|
-
ItemTemplate.setAttribute("_menu", src.itemName);
|
|
285
286
|
ItemTemplate.innerHTML = menuItem.template;
|
|
286
287
|
var generator = getGenerator(page, ItemTemplate);
|
|
287
288
|
page.$generatorScopes.push($scope);
|
|
@@ -299,11 +300,15 @@ function main() {
|
|
|
299
300
|
page.$renders.unshift(function () {
|
|
300
301
|
this.$scope.hasIcon = hasIcon();
|
|
301
302
|
});
|
|
303
|
+
var getMenu = function (a) {
|
|
304
|
+
return a.$scope.$item;
|
|
305
|
+
}
|
|
302
306
|
page.open = function (a) {
|
|
303
|
-
|
|
307
|
+
var amenu = getMenu(a);
|
|
308
|
+
if (!amenu || !amenu.length) {
|
|
304
309
|
return;
|
|
305
310
|
}
|
|
306
|
-
var m = popMenu(a
|
|
311
|
+
var m = popMenu(a);
|
|
307
312
|
m.moveFocus("home");
|
|
308
313
|
};
|
|
309
314
|
page.active = function (a) {
|
|
@@ -314,8 +319,9 @@ function main() {
|
|
|
314
319
|
if (page.selected) page.selected.setActive(false);
|
|
315
320
|
var selected = null;
|
|
316
321
|
for (var e of this.children) {
|
|
317
|
-
|
|
318
|
-
|
|
322
|
+
var emenu = getMenu(e);
|
|
323
|
+
if (!emenu) continue;
|
|
324
|
+
selected = emenu.pathTo(event.value);
|
|
319
325
|
if (selected) break;
|
|
320
326
|
}
|
|
321
327
|
if (!selected) return;
|
|
@@ -326,7 +332,7 @@ function main() {
|
|
|
326
332
|
});
|
|
327
333
|
on("focused")(page, function () {
|
|
328
334
|
var focused = page.focused;
|
|
329
|
-
if (page.ispop && !page.parent) popMenu(focused
|
|
335
|
+
if (page.ispop && !page.parent) popMenu(focused, false);
|
|
330
336
|
});
|
|
331
337
|
page.openFocus = openFocus;
|
|
332
338
|
page.closeFocus = closeFocus;
|
package/coms/zimoli/on.js
CHANGED
|
@@ -118,6 +118,14 @@ var keyCodeMap = {
|
|
|
118
118
|
num: 144,
|
|
119
119
|
numlock: 144,
|
|
120
120
|
scrolllock: 145,
|
|
121
|
+
mute: 173,// 静音
|
|
122
|
+
volumedown: 174,// 音量减
|
|
123
|
+
quiet: 174,// 音量减
|
|
124
|
+
volumeup: 175,// 音量加
|
|
125
|
+
loud: 175,// 音量加
|
|
126
|
+
next: 176,// 下一首
|
|
127
|
+
prev: 177,// 上一首
|
|
128
|
+
pause: 179,// 暂停/播放
|
|
121
129
|
semicolon: 186,
|
|
122
130
|
";": 186,
|
|
123
131
|
":": 186,
|
|
@@ -6,12 +6,10 @@ function removeClass(target, classNames) {
|
|
|
6
6
|
var c = arr[cx];
|
|
7
7
|
cls[c] = true;
|
|
8
8
|
}
|
|
9
|
-
if (isString(classNames))
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
delete cls[c];
|
|
14
|
-
}
|
|
9
|
+
if (isString(classNames)) classNames = classNames.trim().split(/\s+/);
|
|
10
|
+
if (isArray(classNames)) for (var cx = 0, dx = classNames.length; cx < dx; cx++) {
|
|
11
|
+
var c = classNames[cx];
|
|
12
|
+
delete cls[c];
|
|
15
13
|
}
|
|
16
14
|
var newarr = [];
|
|
17
15
|
for (var k in cls) {
|