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 相关文章推荐
自制的文件上传JS控件可支持IE、chrome、firefox etc
Apr 18 Javascript
jQuery实现隔行背景色变色
Nov 24 Javascript
js实现表单Radio切换效果的方法
Aug 17 Javascript
深入理解jQuery 事件处理
Jun 14 Javascript
Highcharts学习之数据列
Aug 03 Javascript
angularjs 中$apply,$digest,$watch详解
Oct 13 Javascript
vue2.0 资源文件assets和static的区别详解
Apr 08 Javascript
JavaScript函数式编程(Functional Programming)高阶函数(Higher order functions)用法分析
May 22 Javascript
vue配置nprogress实现页面顶部进度条
Sep 21 Javascript
react用Redux中央仓库实现一个todolist
Sep 29 Javascript
Echarts实现多条折线可拖拽效果
Dec 19 Javascript
vue实现移动端拖动排序
Aug 21 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
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
国王的咖啡这么大来头,名字的由来是什么
2021/03/03 咖啡文化
PHP 日期加减的类,很不错
2009/10/10 PHP
PHP 解决session死锁的方法
2013/06/20 PHP
php析构函数的简单使用说明
2015/08/24 PHP
js防止DIV布局滚动时闪动的解决方法
2014/10/30 Javascript
javascript中Number对象的toString()方法分析
2014/12/20 Javascript
javascript电商网站抢购倒计时效果实现
2015/11/19 Javascript
Canvas 制作动态进度加载水球详解及实例代码
2016/12/09 Javascript
使用Bootstrap和Vue实现用户信息的编辑删除功能
2017/10/25 Javascript
three.js中文文档学习之通过模块导入
2017/11/20 Javascript
基于Swiper实现移动端页面图片轮播效果
2017/12/28 Javascript
微信小程序使用form表单获取输入框数据的实例代码
2018/05/17 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
详解Vue一个案例引发「内容分发slot」的最全总结
2018/12/02 Javascript
小白教程|一小时上手最流行的前端框架vue(推荐)
2019/04/10 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
2019/06/12 jQuery
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
flexible.js实现移动端rem适配方案
2020/04/07 Javascript
在Python中使用__slots__方法的详细教程
2015/04/28 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
Django外键(ForeignKey)操作以及related_name的作用详解
2019/07/29 Python
python元组的概念知识点
2019/11/19 Python
NumPy中的维度Axis详解
2019/11/26 Python
python使用Geany编辑器配置方法
2020/02/21 Python
python实现录屏功能(亲测好用)
2020/03/02 Python
python datetime处理时间小结
2020/04/16 Python
解决keras backend 越跑越慢问题
2020/06/18 Python
超市端午节活动方案
2014/01/23 职场文书
2019年大学生暑期社会实践调查报告模板
2019/11/07 职场文书
详解Django的MVT设计模式
2021/04/29 Python
MySQL COUNT函数的使用与优化
2021/05/10 MySQL
SQL Server远程连接的设置步骤(图文)
2022/03/23 SQL Server
Java基础——Map集合
2022/04/01 Java/Android
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
2022/06/25 Servers