vue回顶部 组件 可以直接使用

<template>
<div id="goTop">
<div class="goTop" v-show="goTopShow" @click="goTop"><i class="goTopIcon"></i></div>
</div>
</template>
<script>
export default {
name: "goTop",
data(){
return{
scrollTop: '',
goTopShow:false,
}
},
methods:{
handleScroll () {
this.scrollTop = document.querySelector('.content').pageYOffset || document.querySelector('.content').scrollTop || document.querySelector('.content').scrollTop
console.log(this.scrollTop)
if(this.scrollTop>100){
this.goTopShow=true
}
},
goTop(){
let timer=null,_that=this;
cancelAnimationFrame(timer)
timer=requestAnimationFrame(function fn(){
if(_that.scrollTop>0){
_that.scrollTop-=50;
document.querySelector('.content').scrollTop = document.querySelector('.content').scrollTop = _that.scrollTop;
timer=requestAnimationFrame(fn)
}else {
cancelAnimationFrame(timer);
_that.goTopShow=false;
}
})
}
},
mounted() {
document.querySelector('.content').addEventListener('scroll', this.handleScroll);
},
destroyed(){
document.querySelector('.content').removeEventListener('scroll', this.handleScroll)
}
}
</script>
 
<style scoped>
.goTop{
position: fixed;
right: 20px;
bottom: 50px;
width: 50px;
height: 50px;
background:rgba(0,0,0,.65);
}
.goTop:hover{
background:rgba(0,0,0,.85);
}
.goTopIcon{
display: block;
width: 50px;
height: 50px;
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABaUlEQVRYR+2W7U3DQBBE31QAJaQDUkJSAXQA6QAqACqADggVBCoAKoAOCBWEDgatZEcHyeX8AYqQvD/P59t3s7tjiz2H9pyfAWBQ4H8rYPtQ0mefSeqlgO0HYCVp1hWiM4DtOXACHADzrhCdAGxfAZdAffM74ELSbVslWgPYPgMi4UxSqMC2taYgrQCSRNeSQoV1VCU5BaaSnn8dwPYYeAIeJYUKG1FBHFcQb00gGimQJH+RFI2XDdtx+6OmEEWAmHXgHfgAJqW5r/YHhCuInT6xE6A6LGSPfcXktSzVe1GCVQmiBBCHjICxpGWTmiYQ0TOhxKukae7dLEBiNHHzRg31M0nVOwGxyBnVVoCuI5WZjGjaRc4tNwBsnwM3qdG0kT4DsWFe9b5vAH0crQSZu9gawHYt1X3OaEpJSs+3lTYFiGZZ/lXyZDri+zGSNIm1FKD3z0VJgdQnakMrOmHTQ7vuGwAGBQYFvgCufKAhUkYyWwAAAABJRU5ErkJggg==");
background-repeat: no-repeat;
background-position: center center;
}
</style>

转载于:https://www.cnblogs.com/wgs-blog/p/10009449.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值