From 2e1f36fe00993415b7fc1e6bdff7ebf0b9794e29 Mon Sep 17 00:00:00 2001 From: Pan Date: Fri, 24 Aug 2018 13:45:03 +0800 Subject: [PATCH] fix[backToTop]: continuous click bug #1007 --- src/components/BackToTop/index.vue | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/components/BackToTop/index.vue b/src/components/BackToTop/index.vue index 2d4b0193..39977178 100644 --- a/src/components/BackToTop/index.vue +++ b/src/components/BackToTop/index.vue @@ -45,7 +45,8 @@ export default { data() { return { visible: false, - interval: null + interval: null, + isMoving: false } }, mounted() { @@ -62,13 +63,16 @@ export default { this.visible = window.pageYOffset > this.visibilityHeight }, backToTop() { + if (this.isMoving) return const start = window.pageYOffset let i = 0 + this.isMoving = true this.interval = setInterval(() => { const next = Math.floor(this.easeInOutQuad(10 * i, start, -start, 500)) if (next <= this.backPosition) { window.scrollTo(0, this.backPosition) clearInterval(this.interval) + this.isMoving = false } else { window.scrollTo(0, next) }