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

如何不使用href属性实现点击导航栏跳转至页面指定section位置

实现方案

不需要给a标签添加href属性,通过给动态生成的导航元素绑定点击事件,配合浏览器原生scrollIntoView()API即可实现点击跳转对应区域的效果,修改后的代码如下:

function liCreation() {
  for(noOfSection of noOfsections) {
    const sectionAddress = noOfSection.getAttribute('data-nav');
    const sectionId = noOfSection.getAttribute('id');
    const liTag = document.createElement('li');
    const aTag = document.createElement('a');
    
    aTag.className = 'menu__link';
    aTag.textContent = sectionAddress;
    // 存储对应区域的id到自定义属性
    aTag.dataset.target = sectionId;

    // 绑定点击跳转逻辑
    aTag.addEventListener('click', () => {
      const targetEle = document.getElementById(sectionId);
      targetEle && targetEle.scrollIntoView({
        behavior: 'smooth', // 平滑滚动效果,不需要可删除
        block: 'start' // 滚动后区域顶部对齐视口顶部,可改为center实现居中对齐
      });
    });

    liTag.appendChild(aTag);
    // 请将下方选择器替换为你导航栏ul容器的实际选择器
    document.querySelector('.nav__list').appendChild(liTag);
  }
}

注意事项

  • 原代码中缺少将生成的li元素插入到导航栏DOM容器的逻辑,上述代码已经补充,你需要将.nav__list替换为你实际导航栏ul的选择器。
  • 不需要平滑滚动效果的话,直接删除scrollIntoView的参数,改成targetEle.scrollIntoView()即可,基础功能兼容所有主流浏览器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:24:08