efront 3.14.2 → 3.14.11

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.
@@ -1,5 +1,5 @@
1
1
  // 中文编码 utf8
2
- function ylist(container, generator, $Y, group) {
2
+ function ylist(container, generator, $Y) {
3
3
  const cache_height = 2000;
4
4
  var restHeight = cache_height;
5
5
  var list = container || div();
@@ -54,7 +54,7 @@ function ylist(container, generator, $Y, group) {
54
54
  scrollTop += deltaY;
55
55
  for (var cx = 0, dx = children.length; cx < dx; cx++) {
56
56
  var child = children[cx];
57
- if (isFinite(child.index) && child.offsetTop + child.offsetHeight >= scrollTop) {
57
+ if (isFinite(child.index) && child.offsetTop + child.offsetHeight > scrollTop) {
58
58
  return child;
59
59
  }
60
60
  }
@@ -174,7 +174,7 @@ function ylist(container, generator, $Y, group) {
174
174
  }
175
175
  var indexed_item = getIndexedElement(index) || bottom_item;
176
176
  if (indexed_item) {
177
- list.scrollTop = -getFirstElement().offsetTop + indexed_item.offsetTop + indexed_item.offsetHeight * ratio;
177
+ list.scrollTop = -getFirstElement(1).offsetTop + indexed_item.offsetTop + indexed_item.offsetHeight * ratio;
178
178
  }
179
179
  };
180
180
  var runbuild = lazy(function () {
@@ -229,7 +229,7 @@ function ylist(container, generator, $Y, group) {
229
229
  var cache_height = list.offsetHeight;
230
230
 
231
231
  var childrenMap = getChildrenMap();
232
- var last_element = getLastElement();
232
+ var last_element = getLastElement(1);
233
233
  if (!last_element || !last_element.offsetHeight) return;
234
234
  let { scrollTop } = list;
235
235
  scrollTop += deltaY;
@@ -264,7 +264,14 @@ function ylist(container, generator, $Y, group) {
264
264
  }
265
265
  }
266
266
  if (collection.length) {
267
- var { paddingCount, paddingMax } = list;
267
+ var item = collection[collection.length - 1];
268
+ var { paddingCount = 0, paddingMax } = list;
269
+ if (item) item = item.nextSibling;
270
+ if (!paddingMax) while (item && item.index % list.group) {
271
+ item = collection.pop();
272
+ }
273
+ var item = collection[collection.length - 1];
274
+ if (item) scrollTop -= item.offsetTop + getOffsetHeight(item) - collection[0].offsetTop;
268
275
  if (paddingCount > 0 && paddingMax > 0 && paddingCount < paddingMax) {
269
276
  let item = collection[collection.length - 1];
270
277
  while (paddingCount > 0) {
@@ -274,13 +281,6 @@ function ylist(container, generator, $Y, group) {
274
281
  item = item.nextSibling;
275
282
  }
276
283
  }
277
- var item = collection[collection.length - 1];
278
- if (item) item = item.nextSibling;
279
- while (item && item.index % group) {
280
- item = collection.pop();
281
- }
282
- var item = collection[collection.length - 1];
283
- if (item) scrollTop -= item.offsetTop + getOffsetHeight(item) - collection[0].offsetTop;
284
284
  remove(collection);
285
285
  }
286
286
  //滚动到相应的位置
@@ -302,7 +302,7 @@ function ylist(container, generator, $Y, group) {
302
302
  if (!(paddingCount > 0 && paddingMax > 0 && paddingCount < paddingMax) || !(scrollTop < targetHeight)) {
303
303
  paddingCount = 0;
304
304
  }
305
- while (scrollTop < targetHeight || paddingCount > 0 || offset % group) {
305
+ while (scrollTop < targetHeight || paddingCount > 0 || offset % list.group) {
306
306
  offset--;
307
307
  if (!(scrollTop < targetHeight)) {
308
308
  paddingCount--;
@@ -352,36 +352,45 @@ function ylist(container, generator, $Y, group) {
352
352
  }
353
353
  };
354
354
 
355
- list.stopY = function () {
355
+ list.stopY = function (count, spd) {
356
356
  var firstElement = getFirstVisibleElement();
357
- if (!firstElement) return;
358
- var paddingTop = getFirstElement().offsetTop;
357
+ var lastElement = getLastVisibleElement();
358
+ if (!firstElement || !lastElement || !list.clientHeight) return false;
359
+ var paddingTop = getFirstElement(1).offsetTop;
359
360
  var paddingBottom = parseFloat(getComputedStyle(list).paddingBottom);
360
-
361
- var scrolled_t = (list.scrollTop + paddingTop - firstElement.offsetTop) / firstElement.offsetHeight;
361
+ var scrolled_t = (list.scrollTop - firstElement.offsetTop + paddingTop) / firstElement.offsetHeight;
362
+ if (scrolled_t > 1) scrolled_t -= scrolled_t | 0;
362
363
  var last_y = currentY();
363
- if (scrolled_t > .5) {
364
+ if (spd[0] > 0) {
364
365
  var target_ty = last_y + (1 - scrolled_t) * firstElement.offsetHeight;
365
366
  } else {
366
367
  var target_ty = last_y - scrolled_t * firstElement.offsetHeight;
367
368
  }
368
- var lastElement = getLastVisibleElement();
369
369
  var scrolled_b = (list.scrollTop + list.clientHeight - lastElement.offsetTop - paddingBottom) / lastElement.offsetHeight;
370
- if (scrolled_b > .5) {
370
+ if (scrolled_b < 0) scrolled_b -= scrolled_b - 1 | 0;
371
+ if (spd[0] > 0) {
371
372
  var target_by = last_y + (1 - scrolled_b) * lastElement.offsetHeight;
372
373
  } else {
373
374
  var target_by = last_y - scrolled_b * lastElement.offsetHeight;
374
375
  }
375
376
  var target_y = Math.abs(target_ty - last_y) > Math.abs(target_by - last_y) ? target_by : target_ty;
376
377
  var delta = Math.min(calcPixel(60), list.clientHeight >> 2);
377
- if (lastElement.offsetHeight >= delta && firstElement.offsetHeight >= delta) {
378
- return last_y;
378
+ var deltay = Math.abs(target_y - last_y), y;
379
+ if (deltay >= delta) {
380
+ return false;
381
+ }
382
+ if (deltay < 1) y = target_y;
383
+ else if (deltay > count || deltay > 3) {
384
+ y = last_y + (target_y > last_y ? .8 : -.8);
385
+ }
386
+ else {
387
+ y = (target_y + last_y) / 2;
379
388
  }
380
- var resultY = this.Top(Math.abs(target_y - last_y) > 1 ? (target_y + last_y) >> 1 : target_y);
381
- if (resultY === last_y) {
382
- target_y = resultY;
389
+ list.Top(y);
390
+ if (target_y === y) {
391
+ return false;
383
392
  }
384
- return target_y;
393
+ return true;
385
394
  };
386
395
  //导出方法
387
396
  list.go = scrollTo;
@@ -406,7 +415,7 @@ function ylist(container, generator, $Y, group) {
406
415
  var firstVisible = getFirstVisibleElement();
407
416
  if (!firstVisible) return saved_itemIndex;
408
417
  var index = firstVisible.index;
409
- var firstElement = getFirstElement();
418
+ var firstElement = getFirstElement(1);
410
419
  var scrolled = (list.scrollTop - firstVisible.offsetTop + firstElement.offsetTop + .5 | 0) / firstVisible.offsetHeight;
411
420
  return index + scrolled;
412
421
  };
@@ -486,7 +495,8 @@ function list() {
486
495
  var groupCount = /\d+/.exec($Y);
487
496
  if (groupCount) groupCount = +groupCount[0];
488
497
  $Y = /^[xh]|[xh]$/i.test($Y) ? "X" : "Y";
489
- var list = ($Y === "X" ? xlist : ylist)(container, generator, $Y, groupCount || 2);
498
+ var list = ($Y === "X" ? xlist : ylist)(container, generator, $Y);
499
+ if (!list.group) list.group = groupCount || 2;
490
500
  if (bindSrc instanceof Array) {
491
501
  list.src = bindSrc;
492
502
  container.go(container.index() || 0);
@@ -0,0 +1,10 @@
1
+ var test_2d = function () {
2
+ var m = matrix.create2d();
3
+ assert(m.transform([0, 1]), [0, 1])
4
+ m.rotate(Math.PI);
5
+ assert(m.transform([0, 1]), [0, -1])
6
+ m.rotate(Math.PI / 2);
7
+ assert(m.transform([1, 0]), [0, -1]);
8
+ assert(m.transform([0, 1]), [1, 0]);
9
+ }
10
+ test_2d();
@@ -1,5 +1,6 @@
1
1
  & {
2
2
  white-space: nowrap;
3
+ outline: none;
3
4
  }
4
5
 
5
6
  &>div.lack+div.more {
@@ -114,11 +115,12 @@ body:active & {
114
115
  }
115
116
 
116
117
  &[toolbar] {
117
- >menu-item{
118
+ >menu-item {
118
119
  padding-left: 6px;
119
120
  padding-right: 6px;
120
121
  text-align: center;
121
122
  }
123
+
122
124
  >menu-item.has-children {
123
125
  &::after {
124
126
  display: block;
@@ -0,0 +1,7 @@
1
+ function oncemount(target, handle) {
2
+ if (isMounted(target)) {
3
+ handle.call(target);
4
+ return;
5
+ }
6
+ once("append")(target, handle);
7
+ }
@@ -8,7 +8,6 @@
8
8
  function onmounted(target, handle) {
9
9
  if (isMounted(target)) {
10
10
  handle.call(target);
11
- return;
12
11
  }
13
12
  onappend(target, handle);
14
13
  }
@@ -19,40 +19,33 @@ var isequal = (a, b) => a === b || Math.abs((a - b) / (a + b)) < 1e-12;
19
19
  function picture_(image = document.createElement("div")) {
20
20
  var image_width, image_height;
21
21
  var scaled, x, y, min_scale, loaded_scale, locked_scale, click_scale, loaded_x, loaded_y;
22
- var origin_width, origin_height;
22
+ var loaded_width, loaded_height;
23
23
  var max_scale = 10 * devicePixelRatio;
24
24
  var shape = function () {
25
- image.shape(x, y, scaled / devicePixelRatio, origin_rotate);
25
+ image.shape(x, y, scaled / devicePixelRatio, rotated);
26
+ loaded_rotate = rotated; loaded_scale = scaled;
26
27
  };
27
28
  image.reshape = shape;
28
29
  var park = function () {
29
- if (image.park) image.park(x, y, scaled / devicePixelRatio, origin_rotate);
30
+ if (image.park) image.park(x, y, scaled / devicePixelRatio, loaded_rotate);
30
31
  };
31
- var setInitParams = function () {
32
+ var loadParams = function () {
32
33
  if (!image.width) return;
33
34
  image_width = image.width / devicePixelRatio;
34
35
  image_height = image.height / devicePixelRatio;
35
- origin_width = image.clientWidth;
36
- origin_height = image.clientHeight;
37
- origin_rotate = 0;
38
- locked_scale = loaded_scale = Math.min(image.clientHeight / image_height, image.clientWidth / image_width);
39
- if (loaded_scale >= 0.9) {
40
- if (loaded_scale < 1.2) {
41
- click_scale = 1;
42
- loaded_scale = .8;
43
- } else if (loaded_scale < max_scale) {
44
- click_scale = loaded_scale;
45
- loaded_scale = 1;
46
- } else {
47
- click_scale = max_scale;
48
- loaded_scale = 1;
49
- }
36
+ loaded_width = image.clientWidth;
37
+ loaded_height = image.clientHeight;
38
+ loaded_rotate = 0;
39
+ locked_scale = loaded_scale = Math.min(loaded_height / image_height, loaded_width / image_width);
40
+ if (loaded_scale >= 1) {
41
+ click_scale = 4;
42
+ loaded_scale = 1;
50
43
  } else {
51
44
  click_scale = 1;
52
45
  }
53
- loaded_x = (image.clientWidth - image_width * loaded_scale) / 2;
54
- loaded_y = (image.clientHeight - image_height * loaded_scale) / 2;
55
- min_scale = loaded_scale * .75;
46
+ loaded_x = (loaded_width - image_width * loaded_scale) / 2;
47
+ loaded_y = (loaded_height - image_height * loaded_scale) / 2;
48
+ min_scale = loaded_scale * .25;
56
49
  scaled = loaded_scale;
57
50
  x = loaded_x;
58
51
  y = loaded_y;
@@ -65,7 +58,7 @@ function picture_(image = document.createElement("div")) {
65
58
  shape();
66
59
  };
67
60
 
68
- on("append")(image, setInitParams);
61
+ on("append")(image, loadParams);
69
62
 
70
63
  on("append")(image, function () {
71
64
  mountedPictures.push(image);
@@ -73,19 +66,15 @@ function picture_(image = document.createElement("div")) {
73
66
  on("remove")(image, function () {
74
67
  removeFromList(mountedPictures, image);
75
68
  });
76
- image.init = setInitParams;
69
+ image.init = loadParams;
77
70
  image.locked = false;
78
- var last_click_time = 0;
79
71
 
80
- on("click")(image, function (event) {
81
- var time = +new Date;
82
- var delta_time = time - last_click_time;
83
- last_click_time = time;
84
- if (delta_time > 300) return;
72
+ on("dblclick")(image, function (event) {
73
+ if (event.defaultPrevented) return;
74
+ event.preventDefault();
85
75
  var image = this;
86
- var __scaled = scaled, _x = x, _y = y;
87
- setInitParams();
88
- image.locked = isequal(__scaled, loaded_scale) && isequal(loaded_x, x) && isequal(loaded_y, y);
76
+ loadParams();
77
+ image.locked = isequal(scaled, loaded_scale) && isequal(loaded_x, x) && isequal(loaded_y, y);
89
78
  var layerx = event.offsetX || 0;
90
79
  var layery = event.offsetY || 0;
91
80
  if (layerx)
@@ -99,23 +88,24 @@ function picture_(image = document.createElement("div")) {
99
88
  }
100
89
  scale(layerx, layery, click_scale / loaded_scale);
101
90
  } else {
91
+ click_scale = scaled;
102
92
  set_unlock();
103
93
  }
104
94
  });
105
95
  image.getScale = function () {
106
96
  if (!this.locked && !loaded_scale) {
107
- setInitParams();
97
+ loadParams();
108
98
  }
109
99
  return +String(+scaled + 0.00005).slice(0, 6);
110
100
  };
111
101
  var fixpos = function () {
112
102
  var width = image_width * scaled;
113
103
  var height = image_height * scaled;
114
- var r = image.rotate | 0;
104
+ var r = rotated;
115
105
  var [, , w, h] = getrotatedltwh(r);
116
106
  var x0 = x + (width - w) / 2;
117
107
  var y0 = y + (height - h) / 2;
118
- var [x1, y1] = trimCoord([image.clientWidth, image.clientHeight], [x0, y0, w, h], -1);
108
+ var [x1, y1] = trimCoord([loaded_width, loaded_height], [x0, y0, w, h], -1);
119
109
  x += x1 - x0;
120
110
  y += y1 - y0;
121
111
  };
@@ -139,6 +129,21 @@ function picture_(image = document.createElement("div")) {
139
129
  var centern = (n1 + n2) / 2;
140
130
  x = (x - centerx) * scale + centerm;
141
131
  y = (y - centery) * scale + centern;
132
+ var theta = Math.atan2(n2 - n1, m2 - m1) - Math.atan2(y2 - y1, x2 - x1);
133
+ var r = rotated;
134
+ r += (theta * 180 / Math.PI);
135
+ image.rotateBy(theta * 180 / Math.PI);
136
+ // var cosa = Math.cos(theta);
137
+ // var sina = Math.sin(theta);
138
+ // var hw = image.clientWidth / 2;
139
+ // var hh = image.clientHeight / 2;
140
+ // console.log(x, y);
141
+ // x -= hw;
142
+ // y -= hh;
143
+ // var x0 = x * cosa - y * sina;
144
+ // var y0 = x * sina + y * cosa;
145
+ // x = x0 + hw;
146
+ // y = y0 + hh;
142
147
  shape();
143
148
  };
144
149
  var recover = function (change) {
@@ -165,7 +170,9 @@ function picture_(image = document.createElement("div")) {
165
170
  fixpos();
166
171
  if (change || saved_x !== x || saved_y !== y) {
167
172
  park();
173
+ return;
168
174
  }
175
+ if (image.clientHeight && image.clientWidth) return true;
169
176
  };
170
177
  var move = inertia(function (deltax, deltay) {
171
178
  var saved_x = x, saved_y = y;
@@ -174,12 +181,12 @@ function picture_(image = document.createElement("div")) {
174
181
  shape();
175
182
  if (saved_x === x && saved_y === y) return false;
176
183
  });
177
- var saved_event, wheeltime;
184
+ var saved_event;
178
185
  onmousewheel(image, function (event) {
179
186
  var { offsetX: layerX, offsetY: layerY, deltaY } = event;
180
187
  if (this.locked) event.preventDefault();
181
188
  if (!deltaY) return;
182
- if (!this.locked) setInitParams();
189
+ if (!this.locked) loadParams();
183
190
  this.locked = true;
184
191
  var ratio = Math.pow(0.99, 20 * Math.atan(deltaY / 20));
185
192
  var __scaled = scaled;
@@ -199,7 +206,7 @@ function picture_(image = document.createElement("div")) {
199
206
  saved_event = event;
200
207
  event.moveLocked = scaled > locked_scale;
201
208
  if (!this.locked) {
202
- setInitParams();
209
+ loadParams();
203
210
  }
204
211
  move.reset();
205
212
  },
@@ -215,7 +222,6 @@ function picture_(image = document.createElement("div")) {
215
222
 
216
223
  switch (event.touches.length) {
217
224
  case 1:
218
- if (!this.locked) return;
219
225
  break;
220
226
  case 2:
221
227
  this.locked = true;
@@ -253,13 +259,13 @@ function picture_(image = document.createElement("div")) {
253
259
  }
254
260
  saved_event = null;
255
261
  event.moveLocked = scaled >= locked_scale;
256
-
257
- if (this.locked && onclick.preventClick) move.smooth(recover);
262
+ if (this.locked && onclick.preventClick) move.smooth();
258
263
  }
259
264
  });
260
- var origin_rotate = 0;
265
+ var loaded_rotate = 0, rotated = 0;
261
266
  var rotatexy = function (x1, y1, x2, y2) {
262
- var centerx = image.clientWidth / 2, centery = image.clientHeight / 2;
267
+ var { left, top } = getScreenPosition(image);
268
+ var centerx = left + image.clientLeft + image.clientWidth / 2, centery = top + image.clientTop + image.clientHeight / 2;
263
269
  var deltax = x2 - x1, deltay = y2 - y1;
264
270
  var rx = x1 - centerx, ry = y1 - centery;
265
271
  var sign = -ry * deltax + rx * deltay;
@@ -268,22 +274,22 @@ function picture_(image = document.createElement("div")) {
268
274
  if (sign) image.rotateBy(sign > 0 ? delta : -delta);
269
275
  }
270
276
  var updatexy = function () {
271
- var deg = image.rotate - origin_rotate;
277
+ var deg = rotated - loaded_rotate;
272
278
  if (isFinite(deg)) {
273
- origin_rotate = image.rotate;
279
+ loaded_rotate = rotated;
274
280
  [x, y] = getrotatedltwh(deg, scaled);
275
281
  }
276
282
  };
277
283
  var getrotatedltwh = function (a, s = scaled) {
278
284
  var w = image_width * s;
279
285
  var h = image_height * s;
280
- var c = [image.clientWidth / 2, image.clientHeight / 2];
286
+ var c = [loaded_width / 2, loaded_height / 2];
281
287
  var m = x + w / 2;
282
288
  var n = y + h / 2;
283
289
  var [c1, c2] = rotate([m, n], -a, c);
284
290
  c1 -= w / 2;
285
291
  c2 -= h / 2;
286
- var a = origin_rotate;
292
+ var a = loaded_rotate;
287
293
  var l = c[0] - w / 2;
288
294
  var r = l + w;
289
295
  var t = c[1] - h / 2;
@@ -301,29 +307,28 @@ function picture_(image = document.createElement("div")) {
301
307
  image.update = function (animate) {
302
308
  if (image.locked) {
303
309
  updatexy();
304
- x += (image.clientWidth - origin_width) / 2;
305
- y += (image.clientHeight - origin_height) / 2;
306
- origin_height = image.clientHeight;
307
- origin_width = image.clientWidth;
310
+ x += (image.clientWidth - loaded_width) / 2;
311
+ y += (image.clientHeight - loaded_height) / 2;
312
+ loaded_height = image.clientHeight;
313
+ loaded_width = image.clientWidth;
308
314
  if (animate !== false) fixpos();
309
315
  shape();
310
316
  return;
311
317
  }
312
- setInitParams();
318
+ loadParams();
313
319
  if (animate !== false) {
314
- recover();
320
+ move.smooth(recover);
315
321
  } else {
316
- if (animate !== false) fixpos();
317
322
  shape();
318
323
  }
319
324
 
320
325
  };
321
326
  image.rotateTo = function (deg) {
322
- this.rotate = deg;
327
+ rotated = deg;
323
328
  this.update();
324
329
  };
325
330
  image.rotateBy = function (deg) {
326
- var r = this.rotate | 0;
331
+ var r = rotated;
327
332
  if (deg === 90 || deg === -90) {
328
333
  r += deg;
329
334
  if (deg > 0) {
@@ -346,9 +351,10 @@ function picture_(image = document.createElement("div")) {
346
351
  } else {
347
352
  r += deg;
348
353
  }
349
- this.rotate = r;
354
+ rotated = r;
350
355
  this.update(deg === 90 || deg === -90);
351
356
  };
357
+ on('remove')(image, move.reset);
352
358
  on("contextmenu")(image, function (e) {
353
359
  if (onclick.preventClick) e.preventDefault();
354
360
  });
@@ -233,7 +233,7 @@ var _as_yextra = function (global, innerWidth, innerHeight, element, target, poi
233
233
  display: element.style.display
234
234
  };
235
235
  }
236
- var zindex = zIndex();
236
+ var zindex = zIndex(0) + 1;
237
237
  css(element, `position:absolute;z-index:${zindex}`);
238
238
  css(_rhomb, { zIndex: zindex });
239
239
  var release1 = onremove(target, function () {
@@ -3,11 +3,13 @@ var renderElements = Object.create(null);
3
3
  var presets = Object.create(null);
4
4
  presets.template = function (t) {
5
5
  var comment = document.createComment('template');
6
+ comment.$scope = t.$scope;
7
+ comment.$parentScopes = t.$parentScopes;
6
8
  once("append")(comment, function () {
7
9
  var node = document.createElement(comment.parentNode.tagName || "div");
8
10
  node.innerHTML = t.innerHTML;
9
11
  comment.with = [].slice.call(node.childNodes, 0);
10
- appendChild.after(comment,comment.with);
12
+ appendChild.after(comment, comment.with);
11
13
  renderElement(comment.with, comment.$scope, comment.$parentScopes);
12
14
  });
13
15
  return comment;
@@ -692,7 +694,7 @@ function renderElement(element, scope = element.$scope, parentScopes = element.$
692
694
  }
693
695
  for (var k in props) {
694
696
  try {
695
- element[k] = props[k];
697
+ if (element[k] !== props[k]) element[k] = props[k];
696
698
  } catch (e) { }
697
699
  }
698
700
  ons.forEach(([on, key, value]) => on.call(element, key, [withContext, value]));
@@ -782,6 +784,9 @@ function renderStructure(element, scope, parentScopes = []) {
782
784
  element.removeAttribute(name);
783
785
  }
784
786
  else {
787
+ if (!/\-/.test(name) || value === '') {
788
+ copys.push(attr);
789
+ }
785
790
  props[name.replace(/\-(\w)/g, (_, w) => w.toUpperCase())] = value === "" ? true : value;
786
791
  }
787
792
  }
@@ -123,17 +123,18 @@ function slider(autoplay, circle = true) {
123
123
  var park = function () {
124
124
  direction = 0;
125
125
  var singleTarget = getSingleTarget();
126
+ var spd = _speed();
126
127
  if (singleTarget) {
127
128
  negative_index = round(negative_index);
128
129
  }
129
130
  else if (delta_negative_index > 0) {
130
- if (negative_index - floor(negative_index) > 0.2 / (1 + 6 * abs(_speed())))
131
+ if (negative_index - floor(negative_index) > 0.2 / (1 + abs(spd)))
131
132
  negative_index = ceil(negative_index);
132
133
  else
133
134
  negative_index = floor(negative_index);
134
135
  }
135
136
  else if (delta_negative_index < 0) {
136
- if (ceil(negative_index) - negative_index > 0.2 / (1 + 6 * abs(_speed())))
137
+ if (ceil(negative_index) - negative_index > 0.2 / (1 + abs(spd)))
137
138
  negative_index = floor(negative_index);
138
139
  else
139
140
  negative_index = ceil(negative_index);
@@ -239,6 +240,7 @@ function slider(autoplay, circle = true) {
239
240
  });
240
241
  moveupon(outter, {
241
242
  start(event) {
243
+ event.preventDefault();
242
244
  cancelAnimationFrame(timer_animate);
243
245
  clearTimeout(timer_playyer);
244
246
  moving = true;
@@ -1,17 +1,13 @@
1
- function speed(time_splitter = 1) {
2
- var lastmoveTime = new Date, speed = 0;
3
- return function (deltay) {
4
- var now = new Date;
5
- var deltat = now - lastmoveTime;
6
- if (arguments.length) {
7
- if (deltat) {
8
- lastmoveTime = now;
9
- if (deltay) speed = speed ? (speed + deltay * time_splitter / deltat) / 2 : deltay * time_splitter / deltat;
10
- else if (deltay === 0) speed = 0;
11
- }
12
- } else if (deltat > 120) {
13
- speed = 0;
1
+
2
+ function speed() {
3
+ var speed = new Speed();
4
+ return function (a) {
5
+ var now = performance.now ? performance.now() : Date.now();
6
+ if (isFinite(a)) {
7
+ if (a === 0) speed.reset();
8
+ else speed.write([a], now);
9
+ return a;
14
10
  }
15
- return speed;
11
+ return speed.read(now)[0];
16
12
  };
17
13
  }
@@ -0,0 +1,34 @@
1
+ var s = speed();
2
+ var id = 0;
3
+ var passed = Date.now();
4
+ var test = async function (wait, write = '') {
5
+ var _id = ++id;
6
+ await new Promise(ok => setTimeout(ok, wait));
7
+ if (write) var read = s(write);
8
+ else var read = s();
9
+ var now = Date.now();
10
+ if (passed) var waited = now - passed;
11
+ else waited = 0;
12
+ passed = now;
13
+ console.log({ _id, wait, waited, read, write });
14
+ return read > 0.1;
15
+ };
16
+ await test(10, 20)
17
+ await test(20, 30);
18
+ await test(20, 30);
19
+ await test(20, 30);
20
+ await test(20);
21
+ await test(20);
22
+ await test(20);
23
+ await test(20);
24
+ await test(20);
25
+ await test(20);
26
+ await test(20);
27
+ await test(20);
28
+ await test(20);
29
+ await test(20);
30
+ await test(20);
31
+ await test(20);
32
+ await test(20);
33
+ await test(20);
34
+ while (await test(20));
@@ -10,8 +10,6 @@
10
10
  background-color: inherit;
11
11
  color: inherit;
12
12
  padding-right: 10px;
13
- padding-top: 4px;
14
- padding-bottom: 4px;
15
13
  box-shadow: none;
16
14
 
17
15
  &.line,