<!-- 回頂部按鈕為一張50*50的圖片 -->
<!-- btnFlag 控制圖片顯示隱藏 -->
<!-- backTop 回頂部的方法 -->
<img v-if=
"btnFlag" class="go-top" src="圖片url" @click="backTop">
vue實例:
// vue的兩個生命鈎子,這里不多解釋。
// window對象,所有瀏覽器都支持window對象。它表示瀏覽器窗口,監聽滾動事件
mounted () {
window.addEventListener('scroll', this.scrollToTop)
},
destroyed () {
window.removeEventListener('scroll', this.scrollToTop)
},
methods: {
// 點擊圖片回到頂部方法,加計時器是為了過渡順滑
backTop () {
const that = this
let timer = setInterval(() => {
let ispeed = Math.floor(-that.scrollTop / 5)
document.documentElement.scrollTop = document.body.scrollTop = that.scrollTop + ispeed
if (that.scrollTop === 0) {
clearInterval(timer)
}
}, 16)
},
// 為了計算距離頂部的高度,當高度大於60顯示回頂部圖標,小於60則隱藏
scrollToTop () {
const that = this
let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
that.scrollTop = scrollTop
if (that.scrollTop > 0) {
that.btnFlag = true
} else {
that.btnFlag = false
}
}
}
