JavaScript 实现返回顶部按钮的完整案例

作者:青柠

时间:2026-10-25

浏览:148

本文通过一个完整案例,详细讲解如何使用 JavaScript 实现返回顶部按钮。核心思路包括利用 CSS 固定定位将按钮置于页面右下角,并通过 setInterval 和 clearInterval 控制滚动速度。代码演示了如何判断页面是否处于顶部以显示或隐藏按钮,以及如何在点击事件中防止定时器冲突,确保用户体验流畅。

文章目录

JavaScript 返回顶部按钮实现概述

本文分享了一个使用 JavaScript 编写返回顶部按钮的具体代码示例,供读者参考学习。

实现思路与逻辑设计

实现思路如下:

首先设计静态样式,主要采用固定定位(fixed positioning),将按钮固定在页面底部的特定位置。


.backtotop {
    position: fixed;
    bottom: 80px;
    right: 80px;
    width: 80px;
    height: 80px;
    background-color: #ccc;
    font-size: 20px;
    text-align: center;
    padding-top: 12px;
    box-sizing: border-box;
    cursor: pointer;
    color: #000;
    /* 先隐藏按钮 */
    display: none;
  }

JavaScript 返回顶部按钮实现概述

接着处理逻辑部分:当用户点击“返回顶部”按钮时,系统会以每 20 毫秒为周期,以一定的速度向上滚动页面。当页面回到顶部后,必须清除定时器,否则会导致页面一有滚动动作就自动返回顶部的异常现象。这里涉及两个关键方法:setInterval 用于设置定时器,clearInterval 用于清除定时器。

需要注意的是,为了避免定时器冲突,在设置新的定时器之前,必须先执行“设表先关”操作,即先清除可能存在的旧定时器。

最后,为了提升用户体验,需要设计按钮的显隐逻辑:当页面位于顶部时,“返回顶部”按钮自动隐藏;当页面不在顶部时,按钮显示。

完整代码案例

以下是完整的案例代码:


<a href="javascript:;" class="backtotop" id="backtotop">返回<br>顶部</a>

a {
    text-decoration: none;
  }

  body {
    height: 5000px;
  }

  .backtotop {
    position: fixed;
    bottom: 80px;
    right: 80px;
    width: 80px;
    height: 80px;
    background-color: #ccc;
    font-size: 20px;
    text-align: center;
    padding-top: 12px;
    box-sizing: border-box;
    cursor: pointer;
    color: #000;
    /* 先隐藏按钮 */
    display: none;
}

<script>
(function(){
  //获得元素
  var backtotop = document.getElementById('backtotop');

  var timer;
  backtotop.onclick = function(){
    //设表先关,防止定时器冲突
    clearInterval(timer);

    //设置定时器
    timer = setInterval(function(){

      // 更改根元素的scrollTop元素值
      //兼容性问题
      var top = document.documentElement.scrollTop || document.body.scrollTop;
      top = top - 80;
      document.documentElement.scrollTop = top;
      document.body.scrollTop = top;

      //判断
      if(top <= 0) {
        //关闭定时器
        clearInterval(timer);
      }
    },20);
  };

  //监听页面滚动
  window.onscroll = function() {
    //得到卷动值
    var scrollTop = document.documentElement.scrollTop || document.body.scrollTop || window.scrollY;

    //当页面没有卷动时,返回顶部 按钮就隐藏
    if(scrollTop == 0) {
      backtotop.style.display = 'none';
    }else {
        backtotop.style.display = 'block';
    }
  };
})();

<script>

页面未发生卷动时的状态:

JavaScript 返回顶部按钮实现概述

页面发生卷动时的状态:

JavaScript 返回顶部按钮实现概述

感兴趣的读者可以动手尝试实现该功能。

以上就是本文的全部内容,希望对各位的学习有所帮助,也欢迎大家继续支持本站。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章