基于JavaScript实现回到页面顶部动画代码


Posted in Javascript onMay 24, 2016

最近做的都是前端的项目,很多项目都有回到顶部的需求,下面把我写js代码做个笔录,方便以后查找。

发现还可以添加从快到慢的动画效果和随时下拉滚动条停止滚动的功能, 参考了imooc上相关课程,最终实现JS代码如下:

//页面加载后触发
window.onload = function(){
var btn = document.getElementById('btn');
var timer = null;
var isTop = true;
//获取页面可视区高度
var clientHeight = document.documentElement.clientHeight;
//滚动条滚动时触发
window.onscroll = function() {
//显示回到顶部按钮
var osTop = document.documentElement.scrollTop || document.body.scrollTop;
if (osTop >= clientHeight) {
btn.style.display = "block";
} else {
btn.style.display = "none";
};
//回到顶部过程中用户滚动滚动条,停止定时器
if (!isTop) {
clearInterval(timer);
};
isTop = false;
};
btn.onclick = function() {
//设置定时器
timer = setInterval(function(){
//获取滚动条距离顶部高度
var osTop = document.documentElement.scrollTop || document.body.scrollTop;
var ispeed = Math.floor(-osTop / 7);
document.documentElement.scrollTop = document.body.scrollTop = osTop+ispeed;
//到达顶部,清除定时器
if (osTop == 0) {
clearInterval(timer);
};
isTop = true;
},30);
};
};

以上内容是小编给大家介绍的基于JavaScript实现回到页面顶部动画代码,代码简单易懂,所有没给大家附太多的注释,如果大家在参考过程中发现有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
Javascript Request获取请求参数如何实现
Nov 28 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
Jun 04 Javascript
JavaScript中的fontsize()方法使用详解
Jun 08 Javascript
跟我学习javascript的基本类型和引用类型
Nov 16 Javascript
JavaScript中原型链存在的问题解析
Sep 25 Javascript
浅谈 Vue v-model指令的实现原理
Jun 08 Javascript
JavaScript之Date_动力节点Java学院整理
Jun 28 Javascript
10个经典的网页鼠标特效代码
Jan 09 Javascript
puppeteer库入门初探
Jan 09 Javascript
微信小程序中使用echarts的实现方法
Apr 24 Javascript
详解vue高级特性
Jun 09 Javascript
JavaScript代码简化技巧实例解析
Sep 09 Javascript
jquery简单插件制作(fn.extend)完整实例
May 24 #Javascript
jQuery获取及设置表单input各种类型值的方法小结
May 24 #Javascript
jQuery+php实时获取及响应文本框输入内容的方法
May 24 #Javascript
jQuery中事件与动画的总结分享
May 24 #Javascript
jQuery根据表单name获取值的方法
May 24 #Javascript
深入理解jquery自定义动画animate()
May 24 #Javascript
深入理解jquery中的事件与动画
May 24 #Javascript
You might like
星际争霸秘籍
2020/03/04 星际争霸
一个oracle+PHP的查询的例子
2006/10/09 PHP
php判断输入不超过mysql的varchar字段的长度范围
2011/06/24 PHP
JavaScript的setAttribute兼容性问题解决方法
2013/11/11 Javascript
JQuery处理json与ajax返回JSON实例代码
2014/01/03 Javascript
js点击出现悬浮窗效果不使用JQuery插件
2014/01/20 Javascript
scrollWidth,clientWidth,offsetWidth的区别
2015/01/13 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
bootstrap suggest下拉框使用详解
2017/04/10 Javascript
js实现Tab选项卡切换效果
2020/07/17 Javascript
Angular实现双向折叠列表组件的示例代码
2017/11/21 Javascript
Vue实现底部侧边工具栏的实例代码
2018/09/03 Javascript
JavaScript Dom 绑定事件操作实例详解
2019/10/02 Javascript
小程序点击图片实现png转jpg
2019/10/22 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
2019/12/04 Javascript
小程序实现点击tab切换左右滑动
2020/11/16 Javascript
[03:48]2014DOTA2 TI专访71DK夺冠不靠小组赛高排名
2014/07/11 DOTA
Python的ORM框架中SQLAlchemy库的查询操作的教程
2015/04/25 Python
Python操作Word批量生成文章的方法
2015/07/28 Python
浅谈flask源码之请求过程
2018/07/26 Python
Python 判断图像是否读取成功的方法
2019/01/26 Python
感知器基础原理及python实现过程详解
2019/09/30 Python
Python Process多进程实现过程
2019/10/22 Python
Made in Design英国:设计家具、照明、家庭装饰和花园家具
2019/09/24 全球购物
10条PHP编程习惯
2014/05/26 面试题
一道输出判断型Java面试题
2014/10/01 面试题
市场营销专业个人求职信范文
2013/12/14 职场文书
在校生自我鉴定
2014/01/23 职场文书
总经理文秘岗位职责
2014/02/03 职场文书
父亲去世追悼词
2015/06/23 职场文书
毕业典礼主持词
2015/06/29 职场文书
2015年信息技术教研组工作总结
2015/07/22 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
自从在 IDEA 中用了热部署神器 JRebel 之后,开发效率提升了 10(真棒)
2021/06/26 Java/Android
python的列表生成式,生成器和generator对象你了解吗
2022/03/16 Python