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下为Event handler传递动态参数的代码
Jan 06 Javascript
js新闻滚动 js如何实现新闻滚动效果
Jan 07 Javascript
如何使用json在前后台进行数据传输实例介绍
Apr 11 Javascript
JS 按钮点击触发(兼容IE、火狐)
Aug 07 Javascript
jquery+php实现滚动的数字特效
Nov 29 Javascript
jquery对dom节点的操作【推荐】
Apr 15 Javascript
JS实现table表格数据排序功能(可支持动态数据+分页效果)
May 26 Javascript
jQuery属性选择器用法示例
Sep 09 Javascript
JavaScript表单验证开发
Nov 23 Javascript
jQuery表单插件ajaxForm实例详解
Jan 17 Javascript
微信小程序全局变量改变监听的实现方法
Jul 15 Javascript
Vue-cli 移动端布局和动画使用详解
Aug 10 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
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
javascript实现动态CSS换肤技术的脚本
2007/06/29 Javascript
Javascript 实现的数独解题算法网页实例
2013/10/15 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
2014/03/19 Javascript
Javascript基础知识(三)BOM,DOM总结
2014/09/29 Javascript
jQuery Validate设置onkeyup验证的实例代码
2016/12/09 Javascript
jQuery第一次运行页面默认触发点击事件的实例
2018/01/10 jQuery
手动用webpack搭建第一个ReactApp的示例
2018/04/11 Javascript
JS调用安卓手机摄像头扫描二维码
2018/10/16 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
Python随机生成一个6位的验证码代码分享
2015/03/24 Python
Python IDE PyCharm的基本快捷键和配置简介
2015/11/04 Python
快速了解Python相对导入
2018/01/12 Python
Django自定义manage命令实例代码
2018/02/11 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
解析Python3中的Import
2019/10/13 Python
PyCharm使用Docker镜像搭建Python开发环境
2019/12/26 Python
什么是Python中的顺序表
2020/06/02 Python
通过代码实例了解Python sys模块
2020/09/14 Python
通过一张图教会你CSS3倒影的实现
2017/09/26 HTML / CSS
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
养殖项目策划书范文
2014/01/13 职场文书
便利店投资创业计划书
2014/02/08 职场文书
手工社团活动方案
2014/02/17 职场文书
《凡卡》教学反思
2014/04/09 职场文书
我爱读书演讲稿
2014/05/07 职场文书
镇副书记专题民主生活会对照检查材料思想汇报
2014/10/02 职场文书
中学生旷课检讨书模板
2014/10/08 职场文书
2014学生会工作总结报告
2014/12/02 职场文书
谢师宴家长致辞
2015/07/27 职场文书
2016年寒假学习心得体会
2015/10/09 职场文书
2016感恩母亲节校园广播稿
2015/12/17 职场文书