提交 536b285c 编写于 作者: D DCloud_LXH

fix: 修复快速滑动时scroll handler获取不正确

上级 2fefeddd
...@@ -465,70 +465,67 @@ export default { ...@@ -465,70 +465,67 @@ export default {
} }
}, },
_handleScroll: function ($event) { _handleScroll: function ($event) {
if (!($event.timeStamp - this._lastScrollTime < 20)) { const target = $event.target
this._lastScrollTime = $event.timeStamp this.$trigger('scroll', $event, {
const target = $event.target scrollLeft: target.scrollLeft,
this.$trigger('scroll', $event, { scrollTop: target.scrollTop,
scrollLeft: target.scrollLeft, scrollHeight: target.scrollHeight,
scrollTop: target.scrollTop, scrollWidth: target.scrollWidth,
scrollHeight: target.scrollHeight, deltaX: this.lastScrollLeft - target.scrollLeft,
scrollWidth: target.scrollWidth, deltaY: this.lastScrollTop - target.scrollTop
deltaX: this.lastScrollLeft - target.scrollLeft, })
deltaY: this.lastScrollTop - target.scrollTop if (this.scrollY) {
}) if (
if (this.scrollY) { target.scrollTop <= this.upperThresholdNumber &&
if ( this.lastScrollTop - target.scrollTop > 0 &&
target.scrollTop <= this.upperThresholdNumber && $event.timeStamp - this.lastScrollToUpperTime > 200
this.lastScrollTop - target.scrollTop > 0 && ) {
$event.timeStamp - this.lastScrollToUpperTime > 200 this.$trigger('scrolltoupper', $event, {
) { direction: 'top'
this.$trigger('scrolltoupper', $event, { })
direction: 'top' this.lastScrollToUpperTime = $event.timeStamp
})
this.lastScrollToUpperTime = $event.timeStamp
}
if (
target.scrollTop +
target.offsetHeight +
this.lowerThresholdNumber >=
target.scrollHeight &&
this.lastScrollTop - target.scrollTop < 0 &&
$event.timeStamp - this.lastScrollToLowerTime > 200
) {
this.$trigger('scrolltolower', $event, {
direction: 'bottom'
})
this.lastScrollToLowerTime = $event.timeStamp
}
} }
if (this.scrollX) { if (
if ( target.scrollTop +
target.scrollLeft <= this.upperThresholdNumber && target.offsetHeight +
this.lastScrollLeft - target.scrollLeft > 0 && this.lowerThresholdNumber >=
$event.timeStamp - this.lastScrollToUpperTime > 200 target.scrollHeight &&
) { this.lastScrollTop - target.scrollTop < 0 &&
this.$trigger('scrolltoupper', $event, { $event.timeStamp - this.lastScrollToLowerTime > 200
direction: 'left' ) {
}) this.$trigger('scrolltolower', $event, {
this.lastScrollToUpperTime = $event.timeStamp direction: 'bottom'
} })
if ( this.lastScrollToLowerTime = $event.timeStamp
target.scrollLeft + }
target.offsetWidth + }
this.lowerThresholdNumber >= if (this.scrollX) {
target.scrollWidth && if (
this.lastScrollLeft - target.scrollLeft < 0 && target.scrollLeft <= this.upperThresholdNumber &&
$event.timeStamp - this.lastScrollToLowerTime > 200 this.lastScrollLeft - target.scrollLeft > 0 &&
) { $event.timeStamp - this.lastScrollToUpperTime > 200
this.$trigger('scrolltolower', $event, { ) {
direction: 'right' this.$trigger('scrolltoupper', $event, {
}) direction: 'left'
this.lastScrollToLowerTime = $event.timeStamp })
} this.lastScrollToUpperTime = $event.timeStamp
}
if (
target.scrollLeft +
target.offsetWidth +
this.lowerThresholdNumber >=
target.scrollWidth &&
this.lastScrollLeft - target.scrollLeft < 0 &&
$event.timeStamp - this.lastScrollToLowerTime > 200
) {
this.$trigger('scrolltolower', $event, {
direction: 'right'
})
this.lastScrollToLowerTime = $event.timeStamp
} }
this.lastScrollTop = target.scrollTop
this.lastScrollLeft = target.scrollLeft
} }
this.lastScrollTop = target.scrollTop
this.lastScrollLeft = target.scrollLeft
}, },
_scrollTopChanged: function (val) { _scrollTopChanged: function (val) {
if (this.scrollY) { if (this.scrollY) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册