详解原生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 相关文章推荐
JS 常用校验函数
Mar 26 Javascript
jQuery中setTimeout的几种使用方法小结
Apr 07 Javascript
js判断浏览器是否支持html5
Aug 17 Javascript
JavaScript前端图片加载管理器imagepool使用详解
Dec 29 Javascript
jQuery UI插件实现百度提词器效果
Nov 21 Javascript
微信小程序 图片边框解决方法
Jan 16 Javascript
jQuery插件echarts实现的单折线图效果示例【附demo源码下载】
Mar 04 Javascript
MvcPager分页控件 适用于Bootstrap
Jun 03 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
Jul 12 jQuery
微信小程序异步处理详解
Nov 10 Javascript
vue.js实现三级菜单效果
Oct 19 Javascript
VueCli生产环境打包部署跨域失败的解决
Nov 13 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调用mysql存储过程
2007/02/14 PHP
深思 PHP 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
php smarty的预保留变量总结
2008/12/04 PHP
php escape URL编码
2008/12/10 PHP
php url路由入门实例
2014/04/23 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
2016/11/20 PHP
PHP笛卡尔积实现算法示例
2018/07/30 PHP
javascript 鼠标滚轮事件
2009/04/09 Javascript
js或css实现滚动广告的几种方案
2010/01/28 Javascript
jquery.tmpl JQuery模板插件
2011/10/10 Javascript
jQuery Ajax提交表单查询获得数据实例代码
2012/09/19 Javascript
文本域光标操作的jQuery扩展分享
2014/03/10 Javascript
JavaScript的arguments对象应用示例
2014/09/15 Javascript
JS实现在网页中弹出一个输入框的方法
2015/03/03 Javascript
全面解析bootstrap格子布局
2016/05/22 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
原生JS查找元素的方法(推荐)
2016/11/22 Javascript
BootStrap给table表格的每一行添加一个按钮事件
2017/09/07 Javascript
关于React动态加载路由处理的相关问题
2019/01/07 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
vue中的inject学习教程
2019/04/24 Javascript
5个你不知道的JavaScript字符串处理库(小结)
2020/06/01 Javascript
[01:17:12]职来职往完美电竞专场
2014/09/18 DOTA
python使用Flask操作mysql实现登录功能
2018/05/14 Python
Python 字符串换行的多种方式
2018/09/06 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
2020/03/06 Python
python实现凯撒密码、凯撒加解密算法
2020/06/11 Python
HTML5之web workers_动力节点Java学院整理
2017/07/17 HTML / CSS
越南母婴用品购物网站:Kids Plaza
2020/04/09 全球购物
信息技术专业个人自我评价
2013/12/11 职场文书
小学生家长评语集锦
2014/01/30 职场文书
骨干教师培训方案
2014/05/06 职场文书
庆元旦活动总结
2014/07/09 职场文书
培训通知
2015/04/17 职场文书
《山中访友》教学反思
2016/02/24 职场文书