详解原生JS回到顶部


Posted in Javascript onMarch 25, 2019

第一次知道可以用超链接(锚点)实现回到顶部的时候我是很震惊的,想着原来可以这么简单啊!但是作为一个正在学习JS的小白,不能就这么轻易止步,所以查资料自己整了一个JS的回到顶部。

HTML代码:

<div class="container">
	<p>你好哇</p>
	...
</div>
<div id="top">回到顶部</div>

CSS代码:

.container{
	border: 1px solid black;
}
#top{	
	position: fixed;
	padding: 10px;
	width: 20px;
	border: 1px solid black;
	box-shadow: 0 0 2px #333;
	right: 20px;
	bottom: 20px;
}
#top:hover{
	cursor: pointer;
}

JS代码:

//创建变量
var scroll_Top = document.getElementById('top');
 
//用最常用的scrollTop属性实现
var timer = null;
function scrollTop(){
	// 取消一个通过调用requestAnimationFrame()方法添加到计划中的动画帧请求.
	cancelAnimationFrame(timer);
	/* requestAnimationFrame 会把每一帧中的所有DOM操作集中起来,
	在一次重绘或回流中就完成,并且重绘或回流的时间间隔紧紧跟随浏览器的刷新频率
	一般来说,这个频率为每秒60帧。 */
	timer = requestAnimationFrame(function sTop(){
		var top = document.body.scrollTop || document.documentElement.scrollTop;
		if(top > 0){
      //使用定时器,将scrollTop的值每次减少20(自行设置),直到减少到0,则滚动完毕
			document.body.scrollTop = document.documentElement.scrollTop = top - 20;
			timer = requestAnimationFrame(sTop);
		}else{
			cancelAnimationFrame(timer);
		} 
	});
}
scroll_Top.addEventListener('click', scrollTop, false);

效果手动截图:

详解原生JS回到顶部

详解原生JS回到顶部

以上所述是小编给大家介绍的JS回到顶部详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
浅谈javascript 面向对象编程
Oct 28 Javascript
在javascript中对于DOM的加强
Apr 11 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
May 05 Javascript
jQuery学习笔记之基础中的基础
Jan 19 Javascript
如何用js实现鼠标向上滚动时浮动导航
Jul 18 Javascript
原生js实现电商侧边导航效果
Jan 19 Javascript
bootstrap select插件封装成Vue2.0组件
Apr 17 Javascript
JS+CSS实现滚动数字时钟效果
Dec 25 Javascript
原生JavaScript实现todolist功能
Mar 02 Javascript
vue路由组件按需加载的几种方法小结
Jul 12 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
Aug 13 Javascript
微信小程序实现页面浮动导航
Jan 28 Javascript
javascript验证form表单数据的案例详解
Mar 25 #Javascript
elementUI select组件默认选中效果实现的方法
Mar 25 #Javascript
详解javascript函数写法大全
Mar 25 #Javascript
vue在自定义组件中使用v-model进行数据绑定的方法
Mar 25 #Javascript
Node.js之readline模块的使用详解
Mar 25 #Javascript
Javascript的this详解
Mar 23 #Javascript
如何在Angular应用中创建包含组件方法示例
Mar 23 #Javascript
You might like
让PHP开发者事半功倍的十大技巧小结
2010/04/20 PHP
非常精妙的PHP递归调用与静态变量使用
2012/12/16 PHP
老生常谈文本文件和二进制文件的区别
2017/02/27 PHP
javascript window.confirm确认 取消对话框实现代码小结
2012/10/21 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
JavaScript中实现单体模式分享
2015/01/29 Javascript
JS动态显示表格上下frame的方法
2015/03/31 Javascript
javascript实现验证IP地址等相关信息代码
2015/05/10 Javascript
jquery中object对象循环遍历的方法
2015/12/18 Javascript
解决node.js安装包失败的几种方法
2016/09/02 Javascript
javascript笔记之匿名函数和闭包
2017/02/06 Javascript
浅谈angularjs依赖服务注入写法的注意点
2017/04/24 Javascript
vue按需加载组件webpack require.ensure的方法
2017/12/13 Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
2018/01/30 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
2018/05/08 Javascript
JavaScript设计模式之建造者模式实例教程
2018/07/02 Javascript
jQuery实现简单评论区功能
2020/10/26 jQuery
利用 JavaScript 实现并发控制的示例代码
2020/12/31 Javascript
玩转python爬虫之爬取糗事百科段子
2016/02/17 Python
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
python提取照片坐标信息的实例代码
2019/08/14 Python
Python 模拟动态产生字母验证码图片功能
2019/12/24 Python
Django框架之中间件MiddleWare的实现
2019/12/30 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
解决HTML5中的audio在手机端和微信端的不能自动播放问题
2019/11/04 HTML / CSS
html5用video标签流式加载的实现
2020/05/20 HTML / CSS
Vector, ArrayList, HashTable, HashMap哪些是线程安全的,哪些不是
2015/10/12 面试题
银行毕业实习自我鉴定
2013/09/19 职场文书
家居设计专业个人自荐信范文
2013/11/26 职场文书
单位租房协议书样本
2014/10/30 职场文书
文明单位汇报材料
2014/12/24 职场文书
2015年社区工作总结
2015/04/08 职场文书
内勤岗位职责范本
2015/04/13 职场文书
故意杀人罪辩护词
2015/05/21 职场文书
博士论文答辩开场白
2015/06/01 职场文书
K8s部署发布Golang应用程序的实现方法
2021/07/16 Golang