vue.js实现回到顶部动画效果


Posted in Javascript onJuly 31, 2019

最近使用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);
 }
 }
});

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript add event remove event
Apr 07 Javascript
js 获取、清空input type=&quot;file&quot;的值示例代码
Feb 19 Javascript
jQuery多级弹出菜单插件ZoneMenu
Dec 18 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
Jun 17 Javascript
详解React 16 中的异常处理
Jul 28 Javascript
详解node nvm进行node多版本管理
Oct 21 Javascript
js+html5实现手机九宫格密码解锁功能
Jul 30 Javascript
解决vue路由后界面没有变化,但是链接有的问题
Sep 01 Javascript
vue axios数据请求get、post方法及实例详解
Sep 11 Javascript
JavaScript事件对象深入详解
Dec 30 Javascript
Webpack中loader打包各种文件的方法实例
Sep 03 Javascript
vue 使用高德地图vue-amap组件过程解析
Sep 07 Javascript
vue实现滑动超出指定距离回顶部功能
Jul 31 #Javascript
Vue实现回到顶部和底部动画效果
Jul 31 #Javascript
详解mpvue实现对苹果X安全区域的适配
Jul 31 #Javascript
vue将后台数据时间戳转换成日期格式
Jul 31 #Javascript
Vue Element UI + OSS实现上传文件功能
Jul 31 #Javascript
原生js代码能实现call和bind吗
Jul 31 #Javascript
微信小程序下拉框搜索功能的实现方法
Jul 31 #Javascript
You might like
8个出色的WordPress SEO插件收集
2011/02/26 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
2011/11/10 PHP
PHP验证码无法显示的原因及解决办法
2017/08/11 PHP
PHP htmlspecialchars_decode()函数用法讲解
2019/03/01 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
javascript 从if else 到 switch case 再到抽象
2010/07/17 Javascript
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
web开发人员学习jQuery的6大理由及jQuery的优势介绍
2013/01/03 Javascript
Javascript实现关联数据(Linked Data)查询及注意细节
2013/02/22 Javascript
鼠标移到div,浮层显示明细,弹出层与div的上边距左边距重合(示例代码)
2013/12/14 Javascript
node.js中的console.trace方法使用说明
2014/12/09 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
浅析Bootstrap表格的使用
2016/06/23 Javascript
详解使用nvm管理多版本node的方法
2017/08/30 Javascript
vue cli 3.x 项目部署到 github pages的方法
2019/04/17 Javascript
[05:49]2014DOTA2TI4正赛第二日综述 昔日冠军纷纷落马 VG LGD占尽先机
2014/07/20 DOTA
如何利用python查找电脑文件
2018/04/27 Python
Python函数装饰器实现方法详解
2018/12/22 Python
Python父目录、子目录的相互调用方法
2019/02/16 Python
python Kmeans算法原理深入解析
2019/08/23 Python
深入理解Tensorflow中的masking和padding
2020/02/24 Python
python异常处理之try finally不报错的原因
2020/05/18 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
2020/06/02 Python
Python如何读写字节数据
2020/08/05 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
HTML5 Video标签的属性、方法和事件汇总介绍
2015/04/24 HTML / CSS
世界上最大的专业美容用品零售商:Sally Beauty
2017/07/02 全球购物
高品质和独特的产品世界:Creations and Collections
2018/01/07 全球购物
入党转预备思想汇报
2014/01/07 职场文书
《乡愁》教学反思
2014/02/18 职场文书
外贸采购员岗位职责
2014/03/08 职场文书
文化活动实施方案
2014/03/28 职场文书
电子商务求职信
2014/06/15 职场文书
中学生旷课检讨书2篇
2014/10/09 职场文书
初中家长评语和期望
2014/12/26 职场文书