efront 3.25.11 → 3.25.14
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/basic/Item.js +15 -1
- package/coms/basic/Matrix.js +9 -1
- package/coms/basic/Speed.js +36 -10
- package/coms/basic/awaitable.js +41 -0
- package/coms/zimoli/alert.js +22 -9
- package/coms/zimoli/attr.js +9 -3
- package/coms/zimoli/bindAccesskey.js +5 -3
- package/coms/zimoli/button.js +1 -1
- package/coms/zimoli/menu.js +1 -1
- package/coms/zimoli/menuList.js +16 -1
- package/coms/zimoli/on.js +7 -1
- package/coms/zimoli/onmouseleave.js +1 -1
- package/coms/zimoli/picture.js +4 -3
- package/coms/zimoli/picture_.js +4 -2
- package/coms/zimoli/popup.js +1 -0
- package/coms/zimoli/render.js +5 -1
- package/coms/zimoli/slider.js +2 -1
- package/coms/zimoli/table.js +7 -2
- package/coms/zimoli/vbox.js +9 -4
- package/package.json +1 -1
- package/public/efront.js +1 -1
package/coms/basic/Item.js
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {Item} item
|
|
3
|
+
*/
|
|
4
|
+
function pathTo(find, item, path) {
|
|
5
|
+
path.push(item);
|
|
6
|
+
if (item === find || find === item.value) {
|
|
7
|
+
return path;
|
|
8
|
+
}
|
|
9
|
+
for (var m of item) {
|
|
10
|
+
if (pathTo(find, m, path)) return path;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
1
13
|
var id = 0;
|
|
2
14
|
class Item extends Array {
|
|
3
15
|
extended = false;
|
|
@@ -60,7 +72,9 @@ class Item extends Array {
|
|
|
60
72
|
if (isObject(this.value)) return getName(this.value);
|
|
61
73
|
return String(this.value);
|
|
62
74
|
}
|
|
63
|
-
|
|
75
|
+
pathTo(menu) {
|
|
76
|
+
return pathTo(menu, this, []);
|
|
77
|
+
}
|
|
64
78
|
isClosed() {
|
|
65
79
|
if (isObject(this.value)) return !!this.value.closed;
|
|
66
80
|
return this.closed;
|
package/coms/basic/Matrix.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var notMatchLength = new Error("矩阵长度不一致");
|
|
2
2
|
class Matrix extends Array {
|
|
3
3
|
static create2d(theta = 0) {
|
|
4
|
-
return
|
|
4
|
+
return MathMatrix.matrix2d(theta);
|
|
5
5
|
}
|
|
6
6
|
static create3d(factor = [0, 0, 0]) {
|
|
7
7
|
return MathMatrix.matrix3d(factor);
|
|
@@ -83,6 +83,10 @@ class Matrix extends Array {
|
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
class MathMatrix extends Matrix {
|
|
86
|
+
toDOMString() {
|
|
87
|
+
if (this.size()[1] === 2) return `matrix(${[this[0], this[1], this[3], this[4], this[6], this[7]]})`;
|
|
88
|
+
return `matrix(${this})`;
|
|
89
|
+
}
|
|
86
90
|
|
|
87
91
|
static transform(B, dots) {
|
|
88
92
|
var dimention = Math.sqrt(B.length - 1) | 0;
|
|
@@ -217,6 +221,10 @@ class MathMatrix extends Matrix {
|
|
|
217
221
|
|
|
218
222
|
}
|
|
219
223
|
class MatrixTransposed extends Matrix {
|
|
224
|
+
toDOMString() {
|
|
225
|
+
if (this.size()[1] === 2) return `matrix(${[this[0], this[3], this[1], this[4], this[2], this[5]]})`;
|
|
226
|
+
return `matrix(${this.transpose()})`;
|
|
227
|
+
}
|
|
220
228
|
static transform(B, dots) {
|
|
221
229
|
var dimention = Math.sqrt(B.length - 1) | 0;
|
|
222
230
|
if (dots.length % dimention !== 0) throw notMatchLength;
|
package/coms/basic/Speed.js
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
|
+
var [
|
|
2
|
+
/* 静止 */静止,
|
|
3
|
+
/* 停止 */停止,
|
|
4
|
+
/* 移动 */移动,
|
|
5
|
+
/* 减速 */减速,
|
|
6
|
+
/* 回弹 */回弹,
|
|
7
|
+
/* 停靠 */停靠,
|
|
8
|
+
] = new Array(6).fill(0).map((_, i) => i);
|
|
9
|
+
|
|
1
10
|
function inertia(gun) {
|
|
2
11
|
var spd = new Speed;
|
|
3
|
-
var animateIndex = 0;
|
|
4
12
|
var lastTime = 0;
|
|
5
13
|
var _decrease = function () {
|
|
6
14
|
lastTime = Speed.now() - 1;
|
|
@@ -13,12 +21,12 @@ function inertia(gun) {
|
|
|
13
21
|
if (!spd.length) return;
|
|
14
22
|
var id = smooth_timer;
|
|
15
23
|
var now = Speed.now();
|
|
16
|
-
var res = decrease(now - lastTime, spd);
|
|
24
|
+
var res = decrease.call(that, now - lastTime, spd);
|
|
17
25
|
lastTime = now;
|
|
18
26
|
if (smooth_timer !== id) return;
|
|
19
27
|
if (res === false || isEmpty(res)) {
|
|
20
28
|
spd.unset();
|
|
21
|
-
|
|
29
|
+
train.state = 停止;
|
|
22
30
|
return;
|
|
23
31
|
}
|
|
24
32
|
smooth_timer = requestAnimationFrame(_decrease0);
|
|
@@ -35,12 +43,12 @@ function inertia(gun) {
|
|
|
35
43
|
if (id !== smooth_timer) return;
|
|
36
44
|
if (false === res) {
|
|
37
45
|
spd.reset();
|
|
38
|
-
|
|
46
|
+
train.state = 回弹;
|
|
39
47
|
smooth_timer = requestAnimationFrame(_decrease);
|
|
40
48
|
return;
|
|
41
49
|
}
|
|
42
50
|
if (decrease && args.filter(a => Math.abs(a) > 1).length === 0) {
|
|
43
|
-
|
|
51
|
+
train.state = 回弹;
|
|
44
52
|
smooth_timer = requestAnimationFrame(_decrease);
|
|
45
53
|
return;
|
|
46
54
|
}
|
|
@@ -48,30 +56,48 @@ function inertia(gun) {
|
|
|
48
56
|
};
|
|
49
57
|
var spd, smooth_timer, that, decrease;
|
|
50
58
|
var train = function () {
|
|
51
|
-
animateIndex = 1;
|
|
52
59
|
_cancel();
|
|
53
60
|
var args = [].slice.call(arguments, 0, arguments.length);
|
|
54
61
|
spd.write(args);
|
|
62
|
+
if (train.state !== 移动) train.state = 移动;
|
|
55
63
|
gun.apply(this, args);
|
|
56
64
|
that = this;
|
|
57
65
|
};
|
|
58
66
|
train.smooth = function (d) {
|
|
59
67
|
_cancel();
|
|
60
68
|
decrease = d;
|
|
61
|
-
if (
|
|
69
|
+
if (train.state === 移动) {
|
|
70
|
+
train.state = 减速;
|
|
62
71
|
smooth_timer = requestAnimationFrame(smooth);
|
|
63
72
|
}
|
|
64
|
-
else if (
|
|
73
|
+
else if (train.state === 回弹 || train.state === 停靠) {
|
|
74
|
+
train.state = 停靠;
|
|
65
75
|
smooth_timer = requestAnimationFrame(_decrease);
|
|
66
76
|
}
|
|
67
77
|
};
|
|
68
|
-
train.
|
|
78
|
+
train.state = 静止;
|
|
79
|
+
train.reset = train.start = function () {
|
|
69
80
|
_cancel();
|
|
70
|
-
spd.
|
|
81
|
+
spd.unset();
|
|
82
|
+
train.state = 静止;
|
|
71
83
|
};
|
|
72
84
|
return train;
|
|
73
85
|
|
|
74
86
|
}
|
|
87
|
+
|
|
88
|
+
inertia.静止 = 静止;
|
|
89
|
+
inertia.停止 = 停止;
|
|
90
|
+
inertia.移动 = 移动;
|
|
91
|
+
inertia.减速 = 减速;
|
|
92
|
+
inertia.回弹 = 回弹;
|
|
93
|
+
inertia.停靠 = 停靠;
|
|
94
|
+
inertia.STAND = 静止;
|
|
95
|
+
inertia.STOPPING = 停止;
|
|
96
|
+
inertia.MOVING = 移动;
|
|
97
|
+
inertia.SLOWING_DWON = 减速;
|
|
98
|
+
inertia.REBOUNDING = 回弹;
|
|
99
|
+
inertia.DOCKING = 停靠;
|
|
100
|
+
|
|
75
101
|
class Speed extends Array {
|
|
76
102
|
cache = [];
|
|
77
103
|
stamp = 0;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 为可能正在加载的元素添加then方法
|
|
3
|
+
* 占用onload onerror complete then 共4个属性
|
|
4
|
+
* @param {Element|Object|any} image;
|
|
5
|
+
*/
|
|
6
|
+
function awaitable(image) {
|
|
7
|
+
if (image.complete) return image;
|
|
8
|
+
var oks = [];
|
|
9
|
+
var ohs = [];
|
|
10
|
+
var resolved = false,
|
|
11
|
+
errored = false,
|
|
12
|
+
error = null;
|
|
13
|
+
var fire = function () {
|
|
14
|
+
if (resolved || errored) {
|
|
15
|
+
var _oks = oks.splice(0, oks.length);
|
|
16
|
+
var _ohs = ohs.splice(0, ohs.length);
|
|
17
|
+
if (errored) for (var o of _ohs) o(error);
|
|
18
|
+
delete image.then;
|
|
19
|
+
if (resolved) for (var o of _oks) o(image);
|
|
20
|
+
image.then = then;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
var then = image.then = function (ok, oh) {
|
|
24
|
+
if (ok) oks.push(ok);
|
|
25
|
+
if (oh) ohs.push(oh);
|
|
26
|
+
fire();
|
|
27
|
+
};
|
|
28
|
+
image.onload = function () {
|
|
29
|
+
if (resolved || errored) return;
|
|
30
|
+
resolved = true;
|
|
31
|
+
if (!image.complete) image.complete = true;
|
|
32
|
+
fire();
|
|
33
|
+
};
|
|
34
|
+
image.onerror = function (e) {
|
|
35
|
+
if (resolved || errored) return;
|
|
36
|
+
errored = true;
|
|
37
|
+
error = e;
|
|
38
|
+
fire();
|
|
39
|
+
};
|
|
40
|
+
return image;
|
|
41
|
+
}
|
package/coms/zimoli/alert.js
CHANGED
|
@@ -74,16 +74,29 @@ function alert() {
|
|
|
74
74
|
if (close_timer) clearTimeout(close_timer);
|
|
75
75
|
}
|
|
76
76
|
onremove(elem, _onclose);
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
77
|
+
var close_timer;
|
|
78
|
+
var waitclose = function (autoclose, deltaTime) {
|
|
79
|
+
if (autoclose) {
|
|
80
|
+
if (autoclose === true) {
|
|
81
|
+
autoclose = text.length * 160 + deltaTime;
|
|
82
|
+
} else if (autoclose < 100) {
|
|
83
|
+
autoclose = autoclose * 1000;
|
|
84
|
+
}
|
|
85
|
+
close_timer = setTimeout(function () {
|
|
86
|
+
remove(elem);
|
|
87
|
+
}, autoclose);
|
|
82
88
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
89
|
+
};
|
|
90
|
+
waitclose(autoclose, 400)
|
|
91
|
+
elem.setText = function (content, timeout = true) {
|
|
92
|
+
var c = elem.children[0];
|
|
93
|
+
c.innerHTML = content;
|
|
94
|
+
text = content;
|
|
95
|
+
if (timeout) {
|
|
96
|
+
clearTimeout(close_timer);
|
|
97
|
+
waitclose(timeout, -100);
|
|
98
|
+
}
|
|
99
|
+
};
|
|
87
100
|
alerts.push(elem);
|
|
88
101
|
popup(elem);
|
|
89
102
|
return elem;
|
package/coms/zimoli/attr.js
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
|
+
function set(target, k, v) {
|
|
2
|
+
if (target.getAttribute(k) !== v) target.setAttribute(k, v);
|
|
3
|
+
}
|
|
4
|
+
function unset(target, k) {
|
|
5
|
+
if (target.hasAttribute(k)) target.removeAttribute(k);
|
|
6
|
+
}
|
|
1
7
|
function attr(target, key, value) {
|
|
2
8
|
if (arguments.length === 3) {
|
|
3
|
-
if (value === null) target
|
|
4
|
-
else target
|
|
9
|
+
if (value === null) unset(target, key);
|
|
10
|
+
else set(target, key, value);
|
|
5
11
|
} else if (isObject(key)) {
|
|
6
12
|
for (var k in key) {
|
|
7
|
-
target
|
|
13
|
+
set(target, k, key[k]);
|
|
8
14
|
}
|
|
9
15
|
} else if (isString(key)) {
|
|
10
16
|
return target.getAttribute(key);
|
|
@@ -31,11 +31,13 @@ var keydownhandler = function (event) {
|
|
|
31
31
|
on("keydown")(window, keydownhandler);
|
|
32
32
|
var bindAccesskey = function (btn, k) {
|
|
33
33
|
if (!keyMap[k]) keyMap[k] = [];
|
|
34
|
-
|
|
35
|
-
keyMap[k].push(btn);
|
|
36
|
-
once("remove")(btn, function () {
|
|
34
|
+
on("remove")(btn, function () {
|
|
37
35
|
removeFromList(keyMap[k], btn);
|
|
38
36
|
});
|
|
37
|
+
onmounted(btn, function () {
|
|
38
|
+
removeFromList(keyMap[k], btn);
|
|
39
|
+
keyMap[k].push(btn);
|
|
40
|
+
})
|
|
39
41
|
};
|
|
40
42
|
var getKeyFromText = function (btn) {
|
|
41
43
|
var { innerText } = btn;
|
package/coms/zimoli/button.js
CHANGED
package/coms/zimoli/menu.js
CHANGED
|
@@ -97,7 +97,7 @@ var emitEvent = function (item, event) {
|
|
|
97
97
|
if (event.defaultPrevented) return;
|
|
98
98
|
event.preventDefault(true);
|
|
99
99
|
if (item.disabled) return;
|
|
100
|
-
active(this, item,
|
|
100
|
+
active(this, item, "global", this.$src ? createItemTarget.call(this, item) : this);
|
|
101
101
|
}
|
|
102
102
|
function bindGlobalkey(elem, keymap, emit) {
|
|
103
103
|
if (elem.keyoff) {
|
package/coms/zimoli/menuList.js
CHANGED
|
@@ -286,7 +286,7 @@ function main() {
|
|
|
286
286
|
};
|
|
287
287
|
var clickMenu = function (event) {
|
|
288
288
|
switchMenu.cancel();
|
|
289
|
-
if (!switchMenu.done) activeMenu.call(this);
|
|
289
|
+
if (!switchMenu.done) page.setFocus(this), activeMenu.call(this);
|
|
290
290
|
};
|
|
291
291
|
|
|
292
292
|
|
|
@@ -360,6 +360,21 @@ function main() {
|
|
|
360
360
|
page.active = function (a) {
|
|
361
361
|
activeMenu.call(a);
|
|
362
362
|
};
|
|
363
|
+
if (istoolbar) on("active")(page, function (event) {
|
|
364
|
+
if (event.item !== 'global') return;
|
|
365
|
+
if (page.selected) page.selected.setActive(false);
|
|
366
|
+
var selected = null;
|
|
367
|
+
for (var e of this.children) {
|
|
368
|
+
if (!e.menu) continue;
|
|
369
|
+
selected = e.menu.pathTo(event.value);
|
|
370
|
+
if (selected) break;
|
|
371
|
+
}
|
|
372
|
+
if (!selected) return;
|
|
373
|
+
var menu = selected.pop();
|
|
374
|
+
page.selected = menu;
|
|
375
|
+
if (selected[0]) selected[0].extends(menu.value);
|
|
376
|
+
menu.setActive(true);
|
|
377
|
+
});
|
|
363
378
|
on("focused")(page, function () {
|
|
364
379
|
var focused = page.focused;
|
|
365
380
|
if (page.ispop && page === root_menu) popMenu(focused.menu, focused, false);
|
package/coms/zimoli/on.js
CHANGED
|
@@ -482,7 +482,13 @@ var invoke = function (event, type, pointerType) {
|
|
|
482
482
|
});
|
|
483
483
|
if (window.addEventListener) {
|
|
484
484
|
window.addEventListener("touchmove", clickcancel, true);
|
|
485
|
-
window.addEventListener("touchstart",
|
|
485
|
+
window.addEventListener("touchstart", function (event) {
|
|
486
|
+
if (event.touches.length > 1) {
|
|
487
|
+
clickcancel();
|
|
488
|
+
return;
|
|
489
|
+
}
|
|
490
|
+
clickstart.call(this, event);
|
|
491
|
+
}, true);
|
|
486
492
|
window.addEventListener("touchend", function (event) {
|
|
487
493
|
if (event.touches.length > 1) return;
|
|
488
494
|
if (onclick.preventClick) return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var onmouseleave=on("
|
|
1
|
+
var onmouseleave=on("mouseleave");
|
package/coms/zimoli/picture.js
CHANGED
|
@@ -122,6 +122,7 @@ appendChild(广告, alink);
|
|
|
122
122
|
function picture(url, to = 0, key) {
|
|
123
123
|
|
|
124
124
|
var images = {};
|
|
125
|
+
var cacheLength = 8;
|
|
125
126
|
var gen = function (index, ratio) {
|
|
126
127
|
if (index >= urls.length || index < 0) return null;
|
|
127
128
|
if (images[index] && images[index].url !== urls[index]) {
|
|
@@ -133,9 +134,9 @@ function picture(url, to = 0, key) {
|
|
|
133
134
|
if (!images[index + 1] && index + 1 < urls.length) {
|
|
134
135
|
images[index + 1] = create.call(p, urls[index + 1], key, p.index === index);
|
|
135
136
|
}
|
|
136
|
-
if (index >=
|
|
137
|
-
if (index +
|
|
138
|
-
delete images[index +
|
|
137
|
+
if (index >= cacheLength) delete images[index - cacheLength];
|
|
138
|
+
if (index + cacheLength < urls.length) {
|
|
139
|
+
delete images[index + cacheLength];
|
|
139
140
|
}
|
|
140
141
|
var img = images[index]
|
|
141
142
|
if (ratio > .75 && img) {
|
package/coms/zimoli/picture_.js
CHANGED
|
@@ -354,7 +354,8 @@ function picture_(image = document.createElement("div")) {
|
|
|
354
354
|
|
|
355
355
|
image.rotateTo = function (deg) {
|
|
356
356
|
rotated = deg;
|
|
357
|
-
|
|
357
|
+
updatexy();
|
|
358
|
+
shape();
|
|
358
359
|
};
|
|
359
360
|
image.rotateBy = function (deg) {
|
|
360
361
|
var r = rotated;
|
|
@@ -381,7 +382,8 @@ function picture_(image = document.createElement("div")) {
|
|
|
381
382
|
r += deg;
|
|
382
383
|
}
|
|
383
384
|
rotated = r;
|
|
384
|
-
|
|
385
|
+
updatexy();
|
|
386
|
+
shape();
|
|
385
387
|
};
|
|
386
388
|
on('remove')(image, move.reset);
|
|
387
389
|
on("contextmenu")(image, function (e) {
|
package/coms/zimoli/popup.js
CHANGED
package/coms/zimoli/render.js
CHANGED
|
@@ -667,7 +667,6 @@ function renderElement(element, scope = element.$scope, parentScopes = element.$
|
|
|
667
667
|
element.renders = element.renders ? [].concat(element.renders) : [];
|
|
668
668
|
var { ons, copys, attrs, props, binds, context: withContext, ids, once } = element.$struct;
|
|
669
669
|
if (once) element.renderid = 9;
|
|
670
|
-
delete element.$struct;
|
|
671
670
|
if (binds.src) {
|
|
672
671
|
element.$src = parseRepeat(binds.src);
|
|
673
672
|
}
|
|
@@ -710,12 +709,14 @@ function renderElement(element, scope = element.$scope, parentScopes = element.$
|
|
|
710
709
|
if (replacer.renders) renders = renders.concat(replacer.renders);
|
|
711
710
|
replacer.renders = renders;
|
|
712
711
|
if (binds.src) replacer.$src = element.$src;
|
|
712
|
+
delete element.$struct;
|
|
713
713
|
element = replacer;
|
|
714
714
|
element.$scope = scope;
|
|
715
715
|
element.$parentScopes = parentScopes;
|
|
716
716
|
}
|
|
717
717
|
}
|
|
718
718
|
}
|
|
719
|
+
delete element.$struct;
|
|
719
720
|
if (element.children && element.children.length) renderElement(element.children, scope, parentScopes, once);
|
|
720
721
|
if (!isFirstRender) return element;
|
|
721
722
|
var renders = element.renders;
|
|
@@ -900,3 +901,6 @@ render.register = function (key, name) {
|
|
|
900
901
|
register(key, name);
|
|
901
902
|
}
|
|
902
903
|
};
|
|
904
|
+
render.style = function (element, search) {
|
|
905
|
+
return directives.style.call(element, search);
|
|
906
|
+
}
|
package/coms/zimoli/slider.js
CHANGED
|
@@ -245,8 +245,9 @@ function slider(autoplay, circle = true) {
|
|
|
245
245
|
if (!event.deltaX) return;
|
|
246
246
|
if (event._target && event._target !== this) return;
|
|
247
247
|
event._target = outter;
|
|
248
|
+
cancelAnimationFrame(timer_animate);
|
|
248
249
|
clearTimeout(stop_wheel_timer);
|
|
249
|
-
stop_wheel_timer = setTimeout(park,
|
|
250
|
+
stop_wheel_timer = setTimeout(park, 160);
|
|
250
251
|
var deltax = -event.deltaX;
|
|
251
252
|
moveDeltaX(deltax, event);
|
|
252
253
|
});
|
package/coms/zimoli/table.js
CHANGED
|
@@ -203,6 +203,7 @@ function enrichField(f) {
|
|
|
203
203
|
}
|
|
204
204
|
else switch (f.type) {
|
|
205
205
|
case "text":
|
|
206
|
+
case "html":
|
|
206
207
|
width = 200;
|
|
207
208
|
break;
|
|
208
209
|
case "input":
|
|
@@ -358,12 +359,16 @@ function table(elem) {
|
|
|
358
359
|
var tds = getTdsOfSameRow(td);
|
|
359
360
|
setClass(tds, 'x-ing', activeRows);
|
|
360
361
|
activeRows = tds;
|
|
361
|
-
return;
|
|
362
362
|
}
|
|
363
363
|
if (!thead) {
|
|
364
364
|
thead = getThead(table);
|
|
365
365
|
}
|
|
366
|
-
if (!getTargetIn(thead, event.target))
|
|
366
|
+
if (!getTargetIn(thead, event.target)) {
|
|
367
|
+
activeCols.forEach(function (td) {
|
|
368
|
+
removeClass(td, 'y-ing');
|
|
369
|
+
});
|
|
370
|
+
return;
|
|
371
|
+
}
|
|
367
372
|
var tds = getTargetIn(cellMatchManager, event.target);
|
|
368
373
|
if (!tds) return;
|
|
369
374
|
setClass(tds, 'y-ing', activeCols);
|
package/coms/zimoli/vbox.js
CHANGED
|
@@ -19,13 +19,11 @@ function ybox(generator) {
|
|
|
19
19
|
return _box.scrollHeight;
|
|
20
20
|
};
|
|
21
21
|
// currentTop
|
|
22
|
-
var _scrolledTop = _box.scrollTop;
|
|
23
22
|
if (!isFunction(_box_Top)) _box_Top = function (top) {
|
|
24
23
|
if (isNumber(top)) {
|
|
25
24
|
if (_box.scrollTop !== top) {
|
|
26
25
|
_box.scrollTop = top;
|
|
27
26
|
}
|
|
28
|
-
_scrolledTop = top;
|
|
29
27
|
}
|
|
30
28
|
return _box.scrollTop;
|
|
31
29
|
};
|
|
@@ -40,7 +38,7 @@ function ybox(generator) {
|
|
|
40
38
|
var r = true;
|
|
41
39
|
if (top < 0) {
|
|
42
40
|
if (useIncrease && _Top <= 0) {
|
|
43
|
-
r =
|
|
41
|
+
r = increase_half(top, increaser_t.height);
|
|
44
42
|
}
|
|
45
43
|
_box.$Top(0);
|
|
46
44
|
} else if (top + height >= scrollHeight) {
|
|
@@ -48,7 +46,7 @@ function ybox(generator) {
|
|
|
48
46
|
top = increase_height + scrollHeight - height;
|
|
49
47
|
}
|
|
50
48
|
if (useIncrease && top + height >= scrollHeight) {
|
|
51
|
-
r =
|
|
49
|
+
r = increase_half(top + height - scrollHeight, increaser_b.height);
|
|
52
50
|
}
|
|
53
51
|
_box.$Top(top);
|
|
54
52
|
} else {
|
|
@@ -102,6 +100,13 @@ function ybox(generator) {
|
|
|
102
100
|
}
|
|
103
101
|
return true;
|
|
104
102
|
};
|
|
103
|
+
var increase_half = function (deltaY, targetHeight) {
|
|
104
|
+
if (scrollY.state !== inertia.MOVING) {
|
|
105
|
+
deltaY *= (increase_height - targetHeight) / increase_height;
|
|
106
|
+
if (Math.abs(deltaY) < 1) return false;
|
|
107
|
+
}
|
|
108
|
+
return increase(deltaY);
|
|
109
|
+
}
|
|
105
110
|
var increase = function (deltaY, minusOnly) {
|
|
106
111
|
var t_height = increaser_t.height;
|
|
107
112
|
var b_height = increaser_b.height;
|