基于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 相关文章推荐
从零开始学习jQuery (八) 插播:jQuery实施方案
Feb 23 Javascript
js 获取(接收)地址栏参数值的方法
Apr 01 Javascript
JS模拟键盘打字效果的方法
Aug 05 Javascript
JS修改地址栏参数实例代码
Jun 14 Javascript
全面了解JavaScript的数据类型转换
Jul 01 Javascript
巧用数组制作图片切换js代码
Nov 29 Javascript
jQuery插件HighCharts绘制简单2D折线图效果示例【附demo源码】
Mar 21 jQuery
js编写选项卡效果
May 23 Javascript
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
Sep 12 Javascript
React Component存在的几种形式详解
Nov 06 Javascript
js回调函数仿360开机
Dec 26 Javascript
解决vue中provide inject的响应式监听
Apr 19 Vue.js
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 循环列出目录内容的函数代码
2010/05/26 PHP
php内核解析:PHP中的哈希表
2014/01/30 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
JQuery 小练习(实例代码)
2009/08/07 Javascript
jQuery实现动画效果的简单实例
2014/01/27 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
js Calender控件使用详解
2015/01/05 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
Highcharts学习之坐标轴
2016/08/02 Javascript
vue实现可增删查改的成绩单
2016/10/27 Javascript
JavaScript中关于base64的一些事
2019/05/06 Javascript
Vue发布订阅模式实现过程图解
2020/04/30 Javascript
[56:12]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第一场 6.3
2018/06/04 DOTA
[03:12]完美世界DOTA2联赛PWL DAY6集锦
2020/11/05 DOTA
简单总结Python中序列与字典的相同和不同之处
2016/01/19 Python
Python编程之Re模块下的函数介绍
2017/10/28 Python
解决PySide+Python子线程更新UI线程的问题
2019/01/11 Python
python实现图书借阅系统
2019/02/20 Python
Python实现将HTML转成PDF的方法分析
2019/05/04 Python
[机器视觉]使用python自动识别验证码详解
2019/05/16 Python
Python3内置模块pprint让打印比print更美观详解
2019/06/02 Python
python SocketServer源码深入解读
2019/09/17 Python
Django设置Postgresql的操作
2020/05/14 Python
Python 如何查找特定类型文件
2020/08/17 Python
使用CSS3代码绘制可爱的Hello Kitty猫
2016/08/03 HTML / CSS
使用 HTML5 Canvas 制作水波纹效果点击图片就会触发
2014/09/15 HTML / CSS
初中化学教学反思
2014/01/23 职场文书
大一学生职业生涯规划
2014/03/11 职场文书
综合内勤岗位职责
2014/04/14 职场文书
党员三严三实对照检查材料
2014/10/13 职场文书
孟佩杰观后感
2015/06/17 职场文书
食品安全主题班会
2015/08/13 职场文书
职场新人刚入职工作总结该怎么写?
2019/05/15 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis