基于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 类
Nov 07 Javascript
javascript的字符串按引用复制和传递,按值来比较介绍与应用
Dec 28 Javascript
javascript创建数组之联合数组的使用方法示例
Dec 26 Javascript
js调用iframe实现打印页面内容的方法
Mar 04 Javascript
javascript数组去重方法汇总
Apr 23 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
Mar 29 Javascript
javascript设计模式Constructor(构造器)模式
Aug 19 Javascript
微信小程序使用checkbox显示多项选择框功能【附源码下载】
Dec 11 Javascript
微信小程序基于本地缓存实现点赞功能的方法
Dec 18 Javascript
Vue实现动态创建和删除数据的方法
Mar 17 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
Apr 17 Javascript
JavaScript实现横版菜单栏
Mar 17 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
业余方法DIY电子管FM收音机
2021/03/02 无线电
php数据库密码的找回的步骤
2011/01/12 PHP
php实现图形显示Ip地址的代码及注释
2014/01/20 PHP
初识laravel5
2015/03/02 PHP
php保存信息到当前Session的方法
2015/03/16 PHP
php curl请求信息和返回信息设置代码实例
2015/04/27 PHP
解决laravel 出现ajax请求419(unknown status)的问题
2019/09/03 PHP
JavaScript 原型学习总结
2010/10/29 Javascript
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
2013/03/27 Javascript
获得Javascript对象属性个数的示例代码
2013/11/21 Javascript
我用的一些Node.js开发工具、开发包、框架等总结
2014/09/25 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
不想让浏览器运行javascript脚本的方法
2015/11/20 Javascript
获取阴历(农历)和当前日期的js代码
2016/02/15 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
2017/01/06 Javascript
VUE脚手架的下载和配置步骤详解
2019/04/01 Javascript
ES6 class的应用实例分析
2019/06/27 Javascript
微信小程序基础教程之worker线程的使用方法
2019/07/15 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
2019/07/23 Javascript
JavaScript鼠标悬停事件用法解析
2020/05/15 Javascript
[05:22]DOTA2 2015国际邀请赛中国区预选赛首日TOP10
2015/05/26 DOTA
python实现爬虫下载漫画示例
2014/02/16 Python
Python中模拟enum枚举类型的5种方法分享
2014/11/22 Python
Python爬虫中urllib库的进阶学习
2018/01/05 Python
Python3.6连接Oracle数据库的方法详解
2018/05/18 Python
Python读取表格类型文件代码实例
2020/02/17 Python
Python龙贝格法求积分实例
2020/02/29 Python
Bench加拿大官方网站:英国城市服装品牌
2017/11/03 全球购物
沙特阿拉伯家用电器和电子产品购物网站:Sheta and Saif
2020/04/03 全球购物
中专生毕业个人鉴定
2014/02/26 职场文书
销售员岗位职责
2014/06/09 职场文书
保密工作承诺书
2014/08/29 职场文书
护士工作失误检讨书
2014/09/14 职场文书
校本研修个人总结
2015/02/28 职场文书
长征观后感
2015/06/09 职场文书
java executor包参数处理功能 
2022/02/15 Java/Android