vue實(shí)現(xiàn)滑動(dòng)超出指定距離回頂部功能
本文實(shí)例為大家分享了vue實(shí)現(xiàn)滑動(dòng)超出指定距離回頂部功能,供大家參考,具體內(nèi)容如下
效果圖展示:
1、當(dāng)頁面滑動(dòng)時(shí)執(zhí)行scrollToTop ()函數(shù),判斷滑動(dòng)的距離是否超出指定距離,注意下面獲取getElementsByClassName時(shí),是你被滑動(dòng)標(biāo)簽的class。
mounted() { window.addEventListener('scroll', this.scrollToTop, true) } scrollToTop () { let This = this let dom = document.getElementsByClassName('content')[0];//獲取滑動(dòng)模塊的信息(注意class別寫錯(cuò)) This.scrollTop = dom.scrollTop; if (This.scrollTop > 200) { This.btnFlag = true } else { This.btnFlag = false } }
2、當(dāng)超出指定距離會(huì)出來向上的小圖標(biāo),點(diǎn)擊執(zhí)行backTop ()函數(shù)回頂部。圖標(biāo)我是用的阿里矢量圖標(biāo)引入到項(xiàng)目中,樣式自己調(diào)一下。
// 點(diǎn)擊圖標(biāo)回到頂部方法,加計(jì)時(shí)器是為了緩慢回到頂部 backTop () { let This = this let timer = setInterval(() => { let ispeed = Math.floor(-This.scrollTop / 5) document.getElementsByClassName('content')[0].scrollTop = This.scrollTop + ispeed if (This.scrollTop === 0) { clearInterval(timer) } }, 16) },
完整代碼請(qǐng)看下面:
<template> <div class="scrollTop-wrap"> <div v-if="btnFlag" class="go-top"> <li class="iconfont iconhuidaodingbu" @click="backTop()"></li> </div> </div> </template> <script> import { httpGetMethod } from '../common/httpService' export default { name: 'scrollTop', data: function () { return { btnFlag:false, scrollTop:0//當(dāng)前滑動(dòng)距離 } }, mounted() { window.addEventListener('scroll', this.scrollToTop, true) }, destroyed () { window.removeEventListener('scroll', this.scrollToTop, true) }, methods: { // 點(diǎn)擊圖標(biāo)回到頂部方法,加計(jì)時(shí)器是為了緩慢回到頂部 backTop () { let This = this let timer = setInterval(() => { let ispeed = Math.floor(-This.scrollTop / 5) document.getElementsByClassName('content')[0].scrollTop = This.scrollTop + ispeed if (This.scrollTop === 0) { clearInterval(timer) } }, 16) }, // 計(jì)算距離頂部的高度,當(dāng)高度大于200顯示回頂部圖標(biāo),小于200則隱藏 scrollToTop () { let This = this let dom = document.getElementsByClassName('content')[0];//獲取滑動(dòng)模塊的信息(注意class別寫錯(cuò)) This.scrollTop = dom.scrollTop; if (This.scrollTop > 200) { This.btnFlag = true } else { This.btnFlag = false } } } } </script> <style lang="scss"> @import '../styles/mixin'; .scrollTop-wrap { position: relative; .go-top{ position: absolute; top: 430px; left: 260px; z-index: 15; .iconhuidaodingbu{ font-size: 30px; color: #87878A; background-color:#fff; border-radius: 50%; } } } </style>
在其他頁面引用一下:
<template> <div class="wtll-wrap"> <div calss="content"> 這里是你的滑動(dòng)內(nèi)容 </div> <scrollTop></scrollTop> </div> </template> <script> import scrollTop from '../components/scrollTop' export default { name: 'wtll', data: function () { return { } }, components: { scrollTop }, methods: { } } </script>
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue之帶參數(shù)跳轉(zhuǎn)打開新頁面、新窗口
這篇文章主要介紹了vue之帶參數(shù)跳轉(zhuǎn)打開新頁面、新窗口方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04vue+element實(shí)現(xiàn)圖片上傳及裁剪功能
這篇文章主要為大家詳細(xì)介紹了vue+element實(shí)現(xiàn)圖片上傳及裁剪功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06vue2.0嵌套路由實(shí)現(xiàn)豆瓣電影分頁功能(附demo)
這篇文章主要介紹了vue2.0嵌套路由實(shí)現(xiàn)豆瓣電影分頁功能(附demo),這里整理了詳細(xì)的代碼,有需要的小伙伴可以參考下。2017-03-03vue中使用element ui的彈窗與echarts之間的問題詳解
這篇文章主要介紹了vue中使用element ui的彈窗與echarts之間的問題詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10使用vuex的時(shí)候,出現(xiàn)this.$store為undefined問題
這篇文章主要介紹了使用vuex的時(shí)候,出現(xiàn)this.$store為undefined問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06vue tab切換,解決echartst圖表寬度只有100px的問題
這篇文章主要介紹了vue tab切換,解決echartst圖表寬度只有100px的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07SyntaxError:?/xx.vue:?Unexpected?token,?expected?“,“錯(cuò)誤解
這篇文章主要為大家介紹了SyntaxError:?/xx.vue:?Unexpected?token,?expected?“,“錯(cuò)誤解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08