原生JS实现返回顶部功能

当你点击“返回顶部”按钮,页面会自动滚动到顶部,这种做法被许多网站采用 。
 
之前我用jquery实现了返回顶部功能(见jquery实现链接),并在许多项目中使用了这个jquery版本实现。
但最近我将注意力转向了网站性能方面,试图提高页面的加载速度。其中最大的改进便是移除了jquery依赖改用原生js实现“返回顶部”效果。
 
我并不是说绝对不能使用 jquery,而是假使你所处理的一些点击事件用原生js就可解决 ,为什么还要用jquery?因此我回头阅读了之前的jquery返回顶部功能函数,用原生js实现了同样的效果。
 
首先页面上要有用户可点击的元素,像按钮,div,span元素都可以,然后向该元素添加一个点击事件。
 
 
<div class="back-to-top pointer" οnclick="scrollToTop();return false;">Back to top  ^</div>

  

点击该元素,“回到顶部”函数就会开始运行。
我们首先希望页面能滚动回顶部,然后是控制滚动,让页面的滚动效果看起来像用户在自然滚动。
第一步,我们要检查目前是否处于页面顶部,如果不是则执行下一步。
 
 
if (document.body.scrollTop!=0||document.documentElement.scrollTop!=0)
{
 
}

  

 
下一步是将页面向上滚动一段距离(这里设为50px)。
 
 
window.scrollBy(0,-50);

  

 
在向上滚动50px后,我们需要定时执行这个滚动操作(设为每10毫秒执行一次)。
现在我们就能看到类似自然滚动的效果,页面滚动到顶部,之后滚动停止。
 
 
<script>
var timeOut;
function scrollToTop(){
    if (document.body.scrollTop!=0||document.documentElement.scrollTop!=0){
        window.scrollBy(0,-50);
        timeOut=setTimeout('scrollToTop()',10);
        }
        else clearTimeout(timeOut);
}
</script>

注:本文为译文。

原文链接:https://dzone.com/articles/back-to-top-pure-javascript

返回顶部之jquery实现链接:https://paulund.co.uk/how-to-create-an-animated-scroll-to-top-with-jquery

 

转载于:https://www.cnblogs.com/panshijie205/p/5833283.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值