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 读取xml,写入xml 实现代码
Jul 10 Javascript
JS代码同步文本框内容的实例方法
Jul 12 Javascript
js事件源window.event.srcElement兼容性写法(详解)
Nov 25 Javascript
微信小程序 PHP生成带参数二维码
Feb 21 Javascript
详解Vue监听数据变化原理
Mar 08 Javascript
JS仿Base.js实现的继承示例
Apr 07 Javascript
node.js多个异步过程中判断执行是否完成的解决方案
Dec 10 Javascript
JS实现百度网盘任意文件强制下载功能
Aug 31 Javascript
Vue开发之watch监听数组、对象、变量操作分析
Apr 25 Javascript
JavaScript实现抖音罗盘时钟
Oct 11 Javascript
微信小程序中的video视频实现 自定义播放按钮、封面图、视频封面上文案
Jan 02 Javascript
Vue.js实现立体计算器
Feb 22 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
WordPress中登陆后关闭登陆页面及设置用户不可见栏目
2015/12/31 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
基于jquery的一行代码轻松实现拖动效果
2010/12/28 Javascript
Prototype源码浅析 Enumerable部分(二)
2012/01/18 Javascript
Javascript alert消息换行的方法
2013/08/07 Javascript
jquery动态添加元素事件失效问题解决方法
2014/05/23 Javascript
jQuery表单域属性过滤器用法分析
2015/02/10 Javascript
JS+CSS实现Li列表隔行换色效果的方法
2015/02/16 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
深入理解Javascript中的自执行匿名函数
2016/06/03 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
javascript实现鼠标点击生成文字特效
2019/12/24 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
2020/03/25 Javascript
VUE实现吸底按钮
2021/03/04 Vue.js
python mysqldb连接数据库
2009/03/16 Python
python使用reportlab画图示例(含中文汉字)
2013/12/03 Python
python网络编程示例(客户端与服务端)
2014/04/24 Python
跟老齐学Python之Python安装
2014/09/12 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
2018/02/18 Python
Python 使用类写装饰器的小技巧
2018/09/30 Python
Python解析命令行读取参数之argparse模块
2019/07/26 Python
Python3和PyCharm安装与环境配置【图文教程】
2020/02/14 Python
Python BeautifulReport可视化报告代码实例
2020/04/13 Python
如何在django中实现分页功能
2020/04/22 Python
python中的对数log函数表示及用法
2020/12/09 Python
一款利用纯css3实现的360度翻转按钮的实例教程
2014/11/05 HTML / CSS
Kangol帽子官网:坎戈尔袋鼠
2018/09/26 全球购物
安全生产计划书
2014/05/04 职场文书
营销总监岗位职责
2014/09/16 职场文书
初婚未育证明样本
2015/06/18 职场文书
个人房屋租赁合同(标准范本)
2019/09/16 职场文书
读《瓦尔登湖》有感:每个人都需要一个瓦尔登湖
2019/10/17 职场文书
Python文件的操作示例的详细讲解
2021/04/08 Python
详解CSS中postion和opacity及cursor的特性
2022/08/14 HTML / CSS