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

如何为滚动200px触发显示的返回顶部按钮添加平滑显示动画?

实现返回顶部按钮的平滑显示/隐藏动画

要实现按钮的平滑显示/隐藏,核心是替换display属性为支持CSS过渡的opacity和visibility——因为display无法触发过渡动画。以下是修改后的完整实现:

修改后的CSS代码

#btnScrollToTop {
  opacity: 0;
  visibility: hidden;
  position: fixed;
  right: 10px;
  bottom: 10px;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.25);
  color: #000;
  font-size: 22px;
  border: none;
  outline: none;
  cursor: pointer;
  z-index: 1000;
  /* 为可见性和透明度添加过渡动画 */
  transition: all 0.3s ease-in-out;
}

/* 激活类:控制按钮显示 */
#btnScrollToTop.active {
  opacity: 1;
  visibility: visible;
}

#btnScrollToTop:hover {
  color: #fff;
  background-color: #ffb038;
  border: 1px solid #000;
}

修改后的JS代码

let mybutton = document.getElementById("btnScrollToTop");

window.onscroll = scrollFunction;

function scrollFunction() {
  if (document.body.scrollTop > 200 || document.documentElement.scrollTop > 200) {
    mybutton.classList.add("active");
  } else {
    mybutton.classList.remove("active");
  }
}

const btnScrollToTop = document.querySelector("#btnScrollToTop");
btnScrollToTop.addEventListener("click", function() {
  window.scrollTo({
    top: 0,
    left: 0,
    behavior: "smooth"
  })
});

HTML代码(无需修改)

<button id="btnScrollToTop">
      <i class="fa-solid fa-arrow-up"></i>
</button>

效果说明

  • 页面滚动超过200px时,按钮会通过淡入效果平滑显示
  • 滚动回到200px以内时,按钮会通过淡出效果平滑隐藏
  • 按钮的hover样式也会继承过渡动画,保持交互的流畅性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 05:45:37