vue.js实现回到顶部动画效果
最近使用vue.js做了几个页面,其中有一个回到顶部的动画效果记录下。
html如下:
回到顶部 1
最近使用vue.js做了几个页面,其中有一个回到顶部的动画效果记录下。
html如下:
回到顶部 1
backTop.css如下:
*{
margin:0px;
padding:0px;
border:0;
}
html,body{
width:100%;
height:100%;
position:relative;
background:#F2F2F2;
overflow-x:hidden;
overflow-y:auto;
z-index:1;
}
[v-cloak]{
display:none;
}
.back-to-top{
position:fixed;
bottom:5px;
right:20px;
z-index:100;
border-radius:5px;
box-shadow:0px0px2px#222;
padding:8px10px;
cursor:pointer;
}
.back-to-top:hover{
background:#5AC4D1;
}
.back-to-top:hoverspan{
color:white;
}
.back-to-topspan{
display:block;
}
.page{
width:100%;
height:400px;
line-height:400px;
text-align:center;
}
.page:nth-child(odd){
background:white;
}
backTop.js如下:
varbackTopVue=newVue({
el:"#back-to-top",
data:{
//是否显示回到顶部
backTopShow:false,
//是否允许操作返回顶部
backTopAllow:true,
//返回顶部所需时间
backSeconds:100,
//往下滑动多少显示返回顶部(单位:px)
showPx:200
},
mounted:function(){
window.addEventListener("scroll",this.backTopShowOperate,true);
},
methods:{
backTopShowOperate:function(){
if(!this.backTopAllow)return;
if(document.body.scrollTop>this.showPx){
this.backTopShow=true;
}else{
this.backTopShow=false;
}
},
backToTop:function(){
if(!this.backTopAllow)return;
this.backToTopShow=false;
this.backTopAllow=false;
varstep=document.body.scrollTop/this.backSeconds;
varbackTopInterval=setInterval(function(){
if(document.body.scrollTop>0){
document.body.scrollTop-=step;
}else{
backTopVue.backTopAllow=true;
clearInterval(backTopInterval);
}
},1);
}
}
});
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。