vue.js實現(xiàn)回到頂部動畫效果
更新時間:2019年07月31日 16:44:15 作者:qingqiang8808
這篇文章主要為大家詳細介紹了vue.js實現(xiàn)回到頂部動畫效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
最近使用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中動態(tài)設置meta標簽和title標簽的方法
這篇文章主要介紹了vue中動態(tài)設置meta標簽和title標簽的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07
詳解Vue中Computed與watch的用法與區(qū)別
這篇文章主要介紹了Vue中computed和watch的使用與區(qū)別,文中通過示例為大家進行了詳細講解,對Vue感興趣的同學,可以學習一下2022-04-04
element tree樹形組件回顯數(shù)據(jù)問題解決
本文主要介紹了element tree樹形組件回顯數(shù)據(jù)問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-08-08

