vue backtop組件的實(shí)現(xiàn)完整代碼
效果:

代碼:
<template>
<div class="back-top">
<div >
<img src="imgsrc" class="line" :class="isHide? 'isHide': 'isShow'" :style="{display: (firstShow? 'block': 'none')}" @click="backTop">
</div>
</div>
</template>
<script>
export default {
name: "backTop",
data(){
return {
firstShow: false,//初始化隱藏組件
isHide: false,
scrollFLag: true,
}
},
created() {
document.addEventListener('scroll', () => {
let scroll = document.documentElement.scrollTop
if(scroll > 200){
this.isHide = false
this.firstShow = true
}else{
this.isHide = true
}
})
},
methods: {
backTop(){
if(this.scrollFLag){
this.scrollFLag = false
//屏幕高度
let scroll = document.documentElement.scrollTop
let scrollTimer = setInterval(()=> {
scroll -= 50
document.documentElement.scrollTop = Math.max(scroll, 0)
if( scroll <= 0){
clearInterval(scrollTimer)
}
}, 10)
this.scrollFLag = true
}
},
},
}
</script>
<style scoped lang="scss">
.back-top{
position: fixed;
top: 0;
right: 10vw;
width: 20px;
height: 500px;
z-index: 200;
.line{
width: 12vw;
height: 100%;
z-index: 20;
cursor: pointer;
opacity: 0.8;
transform: translateY(-100%);
&:hover{
opacity: 1;
}
}
.isShow{
animation: back-top-move 0.5s forwards linear, back-top-yurayura 2s 0.6s forwards linear infinite;
}
.isHide{
animation: back-top-hide 0.5s forwards linear;
}
}
@keyframes back-top-hide {
from {
transform: translateY(0);
}
to {
transform: translateY(-100%);
}
}
@keyframes back-top-move {
to {
transform: translateY(0);
}
}
@keyframes back-top-yurayura {
0%{transform-origin: top center;transform: rotate(0)}
25%{transform-origin: top center;transform: rotate(2deg)}
75%{transform-origin: top center;transform: rotate(-2deg)}
100%{transform-origin: top center;transform: rotate(0)}
}
</style>
到此這篇關(guān)于vue backtop組件的實(shí)現(xiàn)完整代碼的文章就介紹到這了,更多相關(guān)vue backtop組件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決vue-cli@3.xx安裝不成功的問題及搭建ts-vue項(xiàng)目
這篇文章主要介紹了解決vue-cli@3.xx安裝不成功的問題及搭建ts-vue項(xiàng)目.文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
element-ui el-select下拉框el-date-picker彈出框定位問題解決方案(推薦)
項(xiàng)目開發(fā)過程中發(fā)現(xiàn)el-select和el-date-picker彈出框顯示時(shí)候,滾動(dòng)屏幕,導(dǎo)致彈出框定位出現(xiàn)問題,這篇文章主要介紹了element-ui el-select下拉框el-date-picker彈出框定位問題解決方案(推薦),需要的朋友可以參考下2024-07-07
VUE如何實(shí)現(xiàn)點(diǎn)擊文字添加顏色(動(dòng)態(tài)修改class)
這篇文章主要介紹了VUE如何實(shí)現(xiàn)點(diǎn)擊文字添加顏色(動(dòng)態(tài)修改class),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
在vue項(xiàng)目中配置你自己的啟動(dòng)命令和打包命令方式
這篇文章主要介紹了在vue項(xiàng)目中配置你自己的啟動(dòng)命令和打包命令方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
使用vue-touch報(bào)priority錯(cuò)誤的解決
這篇文章主要介紹了使用vue-touch報(bào)priority錯(cuò)誤的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
建立和維護(hù)大型 Vue.js 項(xiàng)目的 10 個(gè)最佳實(shí)踐
這篇文章小編要與大家分享的是建立和維護(hù)大型 Vue.js 項(xiàng)目的 10 個(gè)最佳實(shí)踐,需要的小伙伴請和小編一起學(xué)習(xí)下面文章的具體內(nèi)容吧2021-09-09
vue 集成 vis-network 實(shí)現(xiàn)網(wǎng)絡(luò)拓?fù)鋱D的方法
這篇文章主要介紹了vue 集成 vis-network 實(shí)現(xiàn)網(wǎng)絡(luò)拓?fù)鋱D的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì) ,需要的朋友可以參考下2019-08-08
Vue中常用的rules校驗(yàn)規(guī)則的實(shí)現(xiàn)
在vue開發(fā)中,難免遇到各種表單校驗(yàn),本文主要介紹了Vue中常用的rules校驗(yàn)規(guī)則的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10
Vue下滾動(dòng)到頁面底部無限加載數(shù)據(jù)的示例代碼
本篇文章主要介紹了Vue下滾動(dòng)到頁面底部無限加載數(shù)據(jù)的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04

