详解原生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 相关文章推荐
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
Nov 05 Javascript
javascript中不等于的代码是什么怎么写
Dec 29 Javascript
javascript封装简单实现方法
Aug 11 Javascript
JavaScript实现页面跳转的几种常用方式
Nov 28 Javascript
跨域资源共享 CORS 详解
Apr 26 Javascript
jQuery animate easing使用方法图文详解
Jun 17 Javascript
使用yeoman构建angular应用的方法
Aug 14 Javascript
浅析为什么a=&quot;abc&quot; 不等于 a=new String(&quot;abc&quot;)
Oct 25 Javascript
Promise扫盲贴
Jun 24 Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
Mar 10 Javascript
Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解
Mar 29 Javascript
JS中一些高效的魔法运算符总结
May 06 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
Dedecms常用函数解析
2008/02/01 PHP
php页面缓存方法小结
2015/01/10 PHP
PHP使用递归方式列出当前目录下所有文件的方法
2015/06/02 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
页面只能打开一次Cooike如何实现
2012/12/04 Javascript
js中如何复制一个对象并获取其所有属性和属性对应的值
2013/10/24 Javascript
在百度知道团队中快速审批新成员的js脚本
2014/02/02 Javascript
js使用ajax读博客rss示例
2014/05/06 Javascript
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
js实现简单选项卡与自动切换效果的方法
2015/04/10 Javascript
JavaScript实现自动消除按钮功能的方法
2015/08/05 Javascript
JS模态窗口返回值兼容问题的完美解决方法
2016/05/28 Javascript
jquery实现简单实用的轮播器
2017/05/23 jQuery
js学习总结之DOM2兼容处理顺序问题的解决方法
2017/07/27 Javascript
vue router demo详解
2017/10/13 Javascript
微信小程序获取手机系统信息的方法【附源码下载】
2017/12/07 Javascript
angular基于ng-alain定义自己的select组件示例
2018/02/23 Javascript
微信小程序转化为uni-app项目的方法示例
2020/05/22 Javascript
Element Alert警告的具体使用方法
2020/07/27 Javascript
vue 调用 RESTful风格接口操作
2020/08/11 Javascript
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
python单线程实现多个定时器示例
2014/03/30 Python
Python多进程原理与用法分析
2018/08/21 Python
Python 70行代码实现简单算式计算器解析
2019/08/30 Python
Python中的None与 NULL(即空字符)的区别详解
2020/09/24 Python
Python 多进程原理及实现
2020/12/21 Python
canvas 绘图时位置偏离的问题解决
2020/09/16 HTML / CSS
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
2014/07/27 面试题
综治宣传月活动总结
2014/04/28 职场文书
幼儿教师个人总结
2015/02/05 职场文书
婚礼伴郎致辞
2015/07/28 职场文书
《月光曲》教学反思
2016/02/16 职场文书
SQL Server代理:理解SQL代理错误日志处理方法
2021/06/30 SQL Server
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL
springboot读取nacos配置文件
2022/05/20 Java/Android
CentOS7安装MySQL8的超级详细教程(无坑!)
2022/06/10 Servers