欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解原生JS回到顶部

程序员文章站 2022-06-21 09:58:16
第一次知道可以用超链接(锚点)实现回到顶部的时候我是很震惊的,想着原来可以这么简单啊!但是作为一个正在学习js的小白,不能就这么轻易止步,所以查资料自己整了一个js的回到顶...

第一次知道可以用超链接(锚点)实现回到顶部的时候我是很震惊的,想着原来可以这么简单啊!但是作为一个正在学习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回到顶部详解整合,希望对大家有所帮助

相关标签: JS 回到顶部