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 相关文章推荐
符合W3C网页标准的iframe标签的使用方法
Jul 19 Javascript
Jquery弹出窗口插件 LeanModal的使用方法
Mar 10 Javascript
JavaScript的递归之递归与循环示例介绍
Aug 05 Javascript
使用JavaScript+canvas实现图片裁剪
Jan 30 Javascript
JavaScript的9种继承实现方式归纳
May 18 Javascript
JavaScript预解析及相关技巧分析
Apr 21 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
Oct 27 Javascript
简单的JS控制button颜色随点击更改的实现方法
Apr 17 Javascript
vue实现键盘输入支付密码功能
Aug 18 Javascript
从零开始学习搭建React脚手架项目
Aug 23 Javascript
JS实现使用POST方式发送请求
Aug 30 Javascript
JavaScript实现联动菜单特效
Jan 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
令PHP初学者头疼十四条问题大总结
2008/11/12 PHP
php跨服务器访问方法小结
2015/05/12 PHP
屏蔽PHP默认设置中的Notice警告的方法
2016/05/20 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
2016/12/14 PHP
php写入mysql中文乱码的实例解决方法
2019/09/17 PHP
Expandable &quot;Detail&quot; Table Rows
2007/08/29 Javascript
js window.event对象详尽解析
2009/02/17 Javascript
Javascript的常规数组和关联数组对比小结
2012/05/24 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
JSONObject使用方法详解
2015/12/17 Javascript
javascript瀑布流式图片懒加载实例解析与优化
2016/02/23 Javascript
canvas实现探照灯效果
2017/02/07 Javascript
微信小程序 定位到当前城市实现实例代码
2017/02/23 Javascript
vue项目打包后打开页面空白解决办法
2018/06/29 Javascript
简述vue状态管理模式之vuex
2018/08/29 Javascript
vue的keep-alive中使用EventBus的方法
2019/04/23 Javascript
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
vue使用better-scroll实现滑动以及左右联动
2020/06/30 Javascript
JS中作用域以及变量范围分析
2020/07/18 Javascript
[01:50]WODOTA制作 DOTA2中文宣传片《HERO》
2013/04/28 DOTA
python统计字符串中指定字符出现次数的方法
2015/04/04 Python
使用Python脚本和ADB命令实现卸载App
2017/02/10 Python
Django日志模块logging的配置详解
2017/02/14 Python
HTML中使用python屏蔽一些基本功能的方法
2017/07/07 Python
NumPy.npy与pandas DataFrame的实例讲解
2018/07/09 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
2019/04/02 Python
Python数据类型之String字符串实例详解
2019/05/08 Python
Python读取stdin方法实例
2019/05/24 Python
PyQt使用QPropertyAnimation开发简单动画
2020/04/02 Python
jupyter notebook 添加kernel permission denied的操作
2020/04/21 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
SVG实现多彩圆环倒计时效果的示例代码
2017/11/21 HTML / CSS
2015年上半年物业工作总结
2015/03/30 职场文书
解决Django transaction进行事务管理踩过的坑
2021/04/24 Python
Redis中缓存穿透/击穿/雪崩问题和解决方法
2021/12/04 Redis
详解Python中的for循环
2022/04/30 Python