基于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 相关文章推荐
List the Codec Files on a Computer
Jun 18 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
Apr 17 Javascript
js截取固定长度的中英文字符的简单实例
Nov 22 Javascript
jquery预览图片实现鼠标放上去显示实际大小
Jan 16 Javascript
Javascript基础学习笔记(菜鸟必看篇)
Jul 22 Javascript
原生js实现jquery函数animate()动画效果的简单实例
Aug 21 Javascript
Laravel中常见的错误与解决方法小结
Aug 30 Javascript
JavaScript函数表达式详解及实例
May 05 Javascript
bootstrap警告框示例代码分享
May 17 Javascript
JS中利用FileReader实现上传图片前本地预览功能
Mar 02 Javascript
es6数值的扩展方法
Mar 11 Javascript
JavaScript offset实现鼠标坐标获取和窗口内模块拖动
May 30 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
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
2013/06/29 PHP
一个简单且很好用的php分页类
2013/10/26 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
php断点续传之文件分割合并详解
2016/12/13 PHP
thinkphp3.2.0 setInc方法 源码全面解析
2018/01/29 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
2018/10/31 PHP
thinkphp5框架实现的自定义扩展类操作示例
2019/05/16 PHP
laravel Validator ajax返回错误信息的方法
2019/09/29 PHP
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
基于jquery用于查询操作的实现代码
2010/05/10 Javascript
Textarea与懒惰渲染实现代码
2012/01/04 Javascript
jQuery 过滤not()与filter()实例代码
2012/05/10 Javascript
document.forms用法示例介绍
2014/06/26 Javascript
javascript中String对象的slice()方法分析
2014/12/20 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
2015/02/20 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
AngularJS 中ui-view传参的实例详解
2017/08/25 Javascript
AngularJS动态添加数据并删除的实例
2018/02/27 Javascript
性能优化篇之Webpack构建速度优化的建议
2019/04/03 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
2019/10/15 Javascript
swiper4实现移动端导航栏tab滑动切换
2020/10/16 Javascript
python 文件与目录操作
2008/12/24 Python
Python实现的数据结构与算法之队列详解
2015/04/22 Python
一步步解析Python斗牛游戏的概率
2016/02/12 Python
Python备份目录及目录下的全部内容的实现方法
2016/06/12 Python
Python多线程threading和multiprocessing模块实例解析
2018/01/29 Python
python smtplib模块自动收发邮件功能(一)
2018/05/22 Python
python+selenium实现QQ邮箱自动发送功能
2019/01/23 Python
Python数据库小程序源代码
2019/09/15 Python
Pytorch在NLP中的简单应用详解
2020/01/08 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
2020/02/28 Python
HTML5的表单(绝对特别强大的功能)使用示例
2013/06/20 HTML / CSS
企业指导教师评语
2014/04/28 职场文书
大学生饮品店创业计划书范文
2019/07/10 职场文书
帮你提高开发效率的JavaScript20个技巧
2021/06/18 Javascript