@dolphinweex/weex-vue-render 0.2.42 → 0.2.43
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/dist/index.common.js +27 -10
- package/package.json +1 -1
package/dist/index.common.js
CHANGED
|
@@ -3373,8 +3373,8 @@ function watchAppear (context, fireNow) {
|
|
|
3373
3373
|
* 此处延时执行是临时规避措施,后续需要优化
|
|
3374
3374
|
*/
|
|
3375
3375
|
if (i == 0) {
|
|
3376
|
-
|
|
3377
|
-
|
|
3376
|
+
setTimeout(() => {
|
|
3377
|
+
detectAppear(el, visibleData, dir);
|
|
3378
3378
|
}, 1);
|
|
3379
3379
|
} else {
|
|
3380
3380
|
detectAppear(el, visibleData, dir);
|
|
@@ -7737,7 +7737,8 @@ var slideMixin = {
|
|
|
7737
7737
|
}
|
|
7738
7738
|
},
|
|
7739
7739
|
|
|
7740
|
-
_slideTo: function _slideTo(index, isTouchScroll) {
|
|
7740
|
+
_slideTo: function _slideTo(index, isTouchScroll, transtionTime = null) {
|
|
7741
|
+
let slideTranstionTime = this.isTransform ? `transform ${transtionTime || TRANSITION_TIME / 1600}s ease-out` : `left ${transtionTime || TRANSITION_TIME / 1600}s ease-out`
|
|
7741
7742
|
var this$1 = this;
|
|
7742
7743
|
if (this.frameCount <= 0) {
|
|
7743
7744
|
return;
|
|
@@ -7785,7 +7786,7 @@ var slideMixin = {
|
|
|
7785
7786
|
lastNode.style.zIndex = '10';
|
|
7786
7787
|
|
|
7787
7788
|
// 执行向左滑动动画
|
|
7788
|
-
inner.style.transition =
|
|
7789
|
+
inner.style.transition = slideTranstionTime;
|
|
7789
7790
|
this.innerOffset += this._wrapperWidth;
|
|
7790
7791
|
this._setPosition(inner, this.innerOffset);
|
|
7791
7792
|
|
|
@@ -7798,7 +7799,7 @@ var slideMixin = {
|
|
|
7798
7799
|
this._setPosition(inner, this.innerOffset);
|
|
7799
7800
|
|
|
7800
7801
|
setTimeout(() => {
|
|
7801
|
-
inner.style.transition =
|
|
7802
|
+
inner.style.transition = slideTranstionTime;
|
|
7802
7803
|
}, 50);
|
|
7803
7804
|
}, TRANSITION_TIME);
|
|
7804
7805
|
|
|
@@ -7814,7 +7815,7 @@ var slideMixin = {
|
|
|
7814
7815
|
inner.appendChild(cloneNode);
|
|
7815
7816
|
|
|
7816
7817
|
// 执行向右滑动动画
|
|
7817
|
-
inner.style.transition =
|
|
7818
|
+
inner.style.transition = slideTranstionTime;
|
|
7818
7819
|
this.innerOffset -= this._wrapperWidth;
|
|
7819
7820
|
this._setPosition(inner, this.innerOffset);
|
|
7820
7821
|
|
|
@@ -7830,7 +7831,7 @@ var slideMixin = {
|
|
|
7830
7831
|
this._setPosition(inner, 0);
|
|
7831
7832
|
|
|
7832
7833
|
setTimeout(() => {
|
|
7833
|
-
inner.style.transition =
|
|
7834
|
+
inner.style.transition = slideTranstionTime;
|
|
7834
7835
|
}, 50);
|
|
7835
7836
|
}, TRANSITION_TIME);
|
|
7836
7837
|
|
|
@@ -7838,13 +7839,13 @@ var slideMixin = {
|
|
|
7838
7839
|
} else {
|
|
7839
7840
|
// 正常切换
|
|
7840
7841
|
this.innerOffset = -index * this._wrapperWidth;
|
|
7841
|
-
inner.style.transition =
|
|
7842
|
+
inner.style.transition = slideTranstionTime;
|
|
7842
7843
|
this._setPosition(inner, this.innerOffset);
|
|
7843
7844
|
}
|
|
7844
7845
|
} else {
|
|
7845
7846
|
// 非无限轮播的正常切换
|
|
7846
7847
|
this.innerOffset = -index * this._wrapperWidth;
|
|
7847
|
-
inner.style.transition =
|
|
7848
|
+
inner.style.transition = slideTranstionTime;
|
|
7848
7849
|
this._setPosition(inner, this.innerOffset);
|
|
7849
7850
|
}
|
|
7850
7851
|
|
|
@@ -8259,6 +8260,8 @@ var slideMixin = {
|
|
|
8259
8260
|
if (!this.scrollable || this.frameCount<=1) {
|
|
8260
8261
|
return // 🚫 禁止滚动行为
|
|
8261
8262
|
}
|
|
8263
|
+
this.lastMoveTime = Date.now();
|
|
8264
|
+
this.lastMovePosition = event.touches[0].pageX;
|
|
8262
8265
|
var touch = event.changedTouches[0];
|
|
8263
8266
|
this._stopAutoPlay();
|
|
8264
8267
|
var inner = this.$refs.inner;
|
|
@@ -8306,6 +8309,20 @@ var slideMixin = {
|
|
|
8306
8309
|
var offsetY = touch.pageY - startY;
|
|
8307
8310
|
tp.offsetX = offsetX;
|
|
8308
8311
|
tp.offsetY = offsetY;
|
|
8312
|
+
|
|
8313
|
+
const now = Date.now();
|
|
8314
|
+
const deltaTime = now - this.lastMoveTime;
|
|
8315
|
+
const deltaX = Math.abs(event.touches[0].pageX - this.lastMovePosition);
|
|
8316
|
+
if (deltaTime > 0) {
|
|
8317
|
+
this.velocity = deltaX / deltaTime; // 像素/毫秒
|
|
8318
|
+
// 计算动画时间,速度越大动画时间越短
|
|
8319
|
+
const baseTime = TRANSITION_TIME / 1000; // 基准时间
|
|
8320
|
+
const minTime = 0.1; // 最小动画时间(秒)
|
|
8321
|
+
this.transitionDuration = Math.max(minTime, baseTime / (this.velocity + 1));
|
|
8322
|
+
}
|
|
8323
|
+
|
|
8324
|
+
this.lastMoveTime = now;
|
|
8325
|
+
this.lastMovePosition = event.touches[0].pageX;
|
|
8309
8326
|
var isV = tp.isVertical;
|
|
8310
8327
|
if (typeof isV === 'undefined') {
|
|
8311
8328
|
isV = tp.isVertical = Math.abs(offsetX) < Math.abs(offsetY);
|
|
@@ -8416,7 +8433,7 @@ var slideMixin = {
|
|
|
8416
8433
|
var reset = Math.abs(offsetX / this._wrapperWidth) < 0.2;
|
|
8417
8434
|
var direction = offsetX > 0 ? 1 : -1;
|
|
8418
8435
|
var newIndex = reset ? this.currentIndex : (this.currentIndex - direction);
|
|
8419
|
-
this._slideTo(newIndex, true);
|
|
8436
|
+
this._slideTo(newIndex, true ,this.transitionDuration);
|
|
8420
8437
|
}
|
|
8421
8438
|
delete this._touchParams;
|
|
8422
8439
|
},
|
package/package.json
CHANGED