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 相关文章推荐
ExtJS[Desktop]实现图标换行示例代码
Nov 17 Javascript
jQuery判断元素是否存在的可靠方法
May 06 Javascript
js闭包的用途详解
Nov 09 Javascript
JavaScript使用ActiveXObject访问Access和SQL Server数据库
Apr 02 Javascript
javascript伸缩型菜单实现代码
Nov 16 Javascript
仿百度换肤功能的简单实例代码
Jul 11 Javascript
jsonp跨域请求实现示例
Mar 13 Javascript
详解VUE-地区选择器(V-Distpicker)组件使用心得
May 07 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
Oct 09 Javascript
vue实现Input输入框模糊查询方法
Jan 29 Javascript
JS前端面试必备——基本排序算法原理与实现方法详解【插入/选择/归并/冒泡/快速排序】
Feb 24 Javascript
Vue触发input选取文件点击事件操作
Aug 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笔记之:AOP的应用
2013/04/24 PHP
常用PHP数组排序函数归纳
2016/08/08 PHP
PHP抽象类和接口用法实例详解
2019/07/20 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
jQueryPad 实用的jQuery测试工具(支持IE,chrome,FF)
2010/05/22 Javascript
Jquery 获取checkbox的checked问题
2011/11/16 Javascript
jquery中.add()的使用分析
2013/04/26 Javascript
js闭包实例汇总
2014/11/09 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
2015/03/31 Javascript
JavaScript 七大技巧(一)
2015/12/13 Javascript
JS请求servlet功能示例
2017/06/01 Javascript
javascript实现二叉树遍历的代码
2017/06/08 Javascript
js实现随机数字字母验证码
2017/06/19 Javascript
微信小程序富文本渲染引擎的详解
2017/09/30 Javascript
详解Vue如何支持JSX语法
2017/11/10 Javascript
jQuery使用动画队列自定义动画操作示例
2018/06/16 jQuery
vue使用原生js实现滚动页面跟踪导航高亮的示例代码
2018/10/25 Javascript
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
解决layer.confirm选择完之后消息框不消失的问题
2019/09/16 Javascript
vue项目中极验验证的使用代码示例
2019/12/03 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
swiperjs实现导航与tab页的联动
2020/12/13 Javascript
详解uniapp的全局变量实现方式
2021/01/11 Javascript
Python 列表(List)操作方法详解
2014/03/11 Python
Pycharm无法显示动态图片的解决方法
2018/10/28 Python
python实现拉普拉斯特征图降维示例
2019/11/25 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
HTML5中的拖放实现详解
2017/08/23 HTML / CSS
求职推荐信
2013/10/28 职场文书
三分钟自我介绍演讲稿
2014/08/21 职场文书
设备收款委托书范本
2014/10/02 职场文书
挂职个人工作总结
2015/03/05 职场文书
2015年置业顾问工作总结
2015/04/07 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
加薪申请书应该这样写!
2019/07/04 职场文书
一文搞懂Python Sklearn库使用
2021/08/23 Python