You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现点击返回页面顶部的按钮,且顶部隐藏、滚动后自动显示

实现方案

只需额外添加滚动监听逻辑,配合少量样式控制即可实现需求,总共分两步:

1. 补充按钮显隐相关CSS

先给按钮设置默认隐藏的样式,你可以根据需求选直接切换显隐或者加过渡动画的版本:

/* 你原有按钮的基础样式,可保留你之前写的定位、大小、图标样式 */
#btnScrollToTop {
  position: fixed;
  bottom: 24px;
  right: 24px;
  cursor: pointer;
  /* 最简版本:默认隐藏 */
  display: none;
  /* 如果要丝滑过渡效果,把上面display注释,用下面的配置:
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
  */
}

/* 用过渡效果时需要加的显示类,不需要过渡可以删掉 */
#btnScrollToTop.show {
  opacity: 1;
  visibility: visible;
}

2. 新增JS滚动监听逻辑

在你原有点击返回逻辑的基础上,添加滚动事件监听,判断滚动距离控制按钮显隐,加了节流逻辑避免性能损耗:

const btnScrollToTop = document.querySelector('#btnScrollToTop');
// 你原有的点击返回顶部逻辑
btnScrollToTop.addEventListener("click", function() {
    window.scrollTo({
        top: 0,
        left: 0,
        behavior: "smooth"
    });
});

// 新增滚动控制显隐逻辑
const showScrollThreshold = 300; // 滚动超过300px时显示按钮,可自行调整数值
let throttleTimer = null;

window.addEventListener('scroll', () => {
  // 节流优化,避免滚动事件频繁触发计算
  if (throttleTimer) return;
  throttleTimer = setTimeout(() => {
    if (window.pageYOffset > showScrollThreshold) {
      // 用display切换的版本
      btnScrollToTop.style.display = 'block';
      // 用过渡效果的版本,把上面一行注释,用下面的:
      // btnScrollToTop.classList.add('show');
    } else {
      btnScrollToTop.style.display = 'none';
      // 用过渡效果的版本,把上面一行注释,用下面的:
      // btnScrollToTop.classList.remove('show');
    }
    throttleTimer = null;
  }, 100);
});

内容的提问来源于stack exchange,提问作者AirWalks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 07:09:02