基于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的history历史记录插件
Dec 11 Javascript
js数组的基本操作(很全自己整理的)
Oct 16 Javascript
设计模式中的组合模式在JavaScript程序构建中的使用
May 18 Javascript
js简单获取表单中单选按钮值的方法
Aug 23 Javascript
微信小程序 本地数据读取实例
Apr 27 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
May 19 Javascript
js 将canvas生成图片保存,或直接保存一张图片的实现方法
Jan 02 Javascript
分享5个好用的javascript文件上传插件
Sep 16 Javascript
详解vue中localStorage的使用方法
Nov 22 Javascript
vue生命周期的探索
Apr 03 Javascript
微信小程序实现的canvas合成图片功能示例
May 03 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
Nov 16 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制作简单的内容采集器的代码
2007/11/28 PHP
php准确获取文件MIME类型的方法
2015/06/17 PHP
最准确的php截取字符串长度函数
2015/10/29 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
PHP convert_cyr_string()函数讲解
2019/02/13 PHP
Gird事件机制初级读本
2007/03/10 Javascript
jQuery实用基础超详细介绍
2013/04/11 Javascript
JavaScript中setInterval的用法总结
2013/11/20 Javascript
javascript实用方法总结
2015/02/06 Javascript
Bootstrap每天必学之轮播(Carousel)插件
2016/04/25 Javascript
jQuery学习之DOM节点的插入方法总结
2017/01/22 Javascript
React BootStrap用户体验框架快速上手
2018/03/06 Javascript
js实现二级联动简单实例
2020/01/11 Javascript
js函数和this用法实例分析
2020/03/13 Javascript
Vue中通过vue-router实现命名视图的问题
2020/04/23 Javascript
Django中几种重定向方法
2015/04/28 Python
python中循环语句while用法实例
2015/05/16 Python
在Python的Django框架中simple-todo工具的简单使用
2015/05/30 Python
在Django中同时使用多个配置文件的方法
2015/07/22 Python
浅谈python中的面向对象和类的基本语法
2016/06/13 Python
python 实现矩阵按对角线打印
2019/11/29 Python
通过python实现windows桌面截图代码实例
2020/01/17 Python
python3 自动打印出最新版本执行的mysql2redis实例
2020/04/09 Python
Keras模型转成tensorflow的.pb操作
2020/07/06 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
如何查看在weblogic中已经发布的EJB
2012/06/01 面试题
编辑硕士自荐信范文
2013/11/27 职场文书
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
医生爱岗敬业演讲稿
2014/08/26 职场文书
新教师培训心得体会
2014/09/02 职场文书
医药公司开票员岗位职责
2015/04/15 职场文书
2015小学教师年度考核工作总结
2015/05/12 职场文书
html css3不拉伸图片显示效果
2021/06/07 HTML / CSS
Vue图片裁剪组件实例代码
2021/07/02 Vue.js