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

点击板块切换按钮时,如何添加window.scrollTo(0,0)实现页面滚顶

解决点击板块按钮切换页面时滚动到顶部的问题

你只需要把window.scrollTo(0, 0)放在页面板块切换逻辑执行完成后的位置即可,具体来说是在切换section的active类之后。

修改后的完整代码如下:

const sections = document.querySelectorAll(".section");
const sectBtns = document.querySelectorAll(".controls");
const sectBtn = document.querySelectorAll(".control");
const allSections = document.querySelectorAll(".main-content");

function PageTransitions() {
  // Button click active class
  for (let i = 0; i < sectBtn.length; i++) {
    sectBtn[i].addEventListener("click", function () {
      let currentBtn = document.querySelectorAll(".active-btn");
      currentBtn[0].className = currentBtn[0].className.replace(
        "active-btn",
        ""
      );
      this.className += " active-btn";
    });
  }

  //Sections Active
  allSections[0].addEventListener("click", e => {
    const id = e.target.dataset.id;
    if (id) {
      // 移除其他按钮的active类
      sectBtns.forEach(btn => {
        btn.classList.remove("active");
      });
      e.target.classList.add("active");

      // 隐藏其他板块
      sections.forEach(section => {
        section.classList.remove("active");
      });

      // 显示目标板块
      const element = document.getElementById(id);
      element.classList.add("active");

      // 切换完成后滚动到页面顶部
      window.scrollTo(0, 0);
    }
  });
}

PageTransitions();

为什么放在这里?

当点击按钮触发板块切换逻辑时,代码会先完成「按钮状态更新」「隐藏旧板块」「显示新板块」这一系列操作,最后执行window.scrollTo(0, 0),能确保新板块的内容从页面顶部开始展示,避免用户停留在之前的滚动位置,提升体验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:50:30