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 相关文章推荐
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
Aug 28 Javascript
深入了解javascript中的prototype与继承
Apr 14 Javascript
JS判断移动端访问设备并加载对应CSS样式
Jun 13 Javascript
元素绑定click点击事件方法
Jun 08 Javascript
js实现分割上传大文件
Mar 09 Javascript
bootstrap导航栏、下拉菜单、表单的简单应用实例解析
Jan 06 Javascript
源码分析Vue.js的监听实现教程
Apr 23 Javascript
webpack学习教程之publicPath路径问题详解
Jun 17 Javascript
vue 中directive功能的简单实现
Jan 05 Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
Feb 05 Javascript
深入浅出vue图片路径的实现
Sep 04 Javascript
JS面向对象编程基础篇(二) 封装操作实例详解
Mar 03 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
phpMyAdmin 安装及问题总结
2009/05/28 PHP
php自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
PHP获取时间排除周六、周日的两个方法
2014/06/30 PHP
Laravel 4 初级教程之视图、命名空间、路由
2014/10/30 PHP
php常见的魔术方法详解
2014/12/25 PHP
Laravel框架验证码类用法实例分析
2019/09/11 PHP
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
2006/09/22 Javascript
JQuery 动态扩展对象之另类视角
2010/05/25 Javascript
基于JavaScript实现继承机制之构造函数+原型链混合方式的使用详解
2013/05/07 Javascript
ComboBox 和 DateField 在IE下消失的解决方法
2013/08/30 Javascript
js将json格式内容转换成对象的方法
2013/11/01 Javascript
提高jQuery性能的十个诀窍
2013/11/14 Javascript
jquery 表格排序、实时搜索表格内容(附图)
2014/05/19 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
2015/11/18 Javascript
jQuery插件扩展测试实例
2016/06/21 Javascript
Angular搜索场景中使用rxjs的操作符处理思路
2018/05/30 Javascript
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
2018/05/31 jQuery
原来JS还可以这样拆箱转换详解
2019/02/01 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
详解vue-video-player使用心得(兼容m3u8)
2019/08/23 Javascript
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
flask框架使用orm连接数据库的方法示例
2018/07/16 Python
对python:循环定义多个变量的实例详解
2019/01/20 Python
Python学习笔记之自定义函数用法详解
2019/06/08 Python
python多线程同步之文件读写控制
2021/02/25 Python
python实现监控阿里云账户余额功能
2019/12/16 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
pytorch下的unsqueeze和squeeze的用法说明
2021/02/06 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
2021/03/04 Python
Noon埃及:埃及在线购物
2019/11/26 全球购物
承办会议欢迎词
2014/01/17 职场文书
大学生创业项目方案
2014/03/08 职场文书
放假通知范文
2015/04/14 职场文书
辩护意见书
2015/06/04 职场文书
SpringBoot实现quartz定时任务可视化管理功能
2021/08/30 Java/Android