这篇文章将为大家详细讲解有关vue.js怎么实现回到顶部动画效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
最近使用vue.js做了几个页面,其中有一个回到顶部的动画效果记录下。
html如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>回到顶部</title>
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="expires" CONTENT="0">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"/>
<link rel="stylesheet" href="./backTop.css" type="text/css"/>
</head>
<body>
<div class="page">1</div>
<div class="page">2</div>
<div class="page">3</div>
<div class="page">4</div>
<div class="page">5</div>
<div id="back-to-top" class="back-to-top" @click="backToTop" v-show="backTopShow" v-cloak>
<span>回到</span>
<span>顶部</span>
</div>
<script src="https://cdn.bootcss.com/vue/2.5.16/vue.min.js"></script>
<script src="./backTop.js" type="text/javascript"></script>
</body>
</html>
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: 0px 0px 2px #222;
padding: 8px 10px;
cursor: pointer;
}
.back-to-top:hover {
background: #5AC4D1;
}
.back-to-top:hover span {
color: white;
}
.back-to-top span {
display: block;
}
.page {
width: 100%;
height: 400px;
line-height: 400px;
text-align: center;
}
.page:nth-child(odd) {
background: white;
}
backTop.js 如下:
var backTopVue = new Vue({
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;
var step = document.body.scrollTop / this.backSeconds;
var backTopInterval = setInterval(function() {
if (document.body.scrollTop > 0) {
document.body.scrollTop -= step;
} else {
backTopVue.backTopAllow = true;
clearInterval(backTopInterval);
}
}, 1);
}
}
});
关于“vue.js怎么实现回到顶部动画效果”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。