行业资讯

首页 > 新闻资讯 > 行业资讯 > 网站制作中导航栏目在网站内部跳转实现方式

网站制作中导航栏目在网站内部跳转实现方式

2025-05-19 22:25:38   来源:   阅读:

点击导航栏目在页面内部跳转;
在普通的html文档中 ,页面内部的锚点跳转,我们通常使用 a 标签 ,同时在需要跳转到的位置 ,要设置一个锚点(很形象的理解,渔船出海要停船了,防止漂走,要抛锚大笑),怎么设置锚点,对应的元素 id="锚点id",如法一




红宝书练习


  • 跳转div1

  • 跳转div2

  • 跳转div3




div1
div2
div3


这种方法的缺点 页面的URL 会发生变化 如URL :file:///C:/Users/31295/Desktop/html5实例/红宝书练习.html#div1,当点击上方,页面内部跳转,同时上方URL的标红部分也会发生变化 (这不是我们想要的)
方法二,在js事件中通过window.location.hash="divId" ,改变# 号后面的 值 但地址也会发生变化,感觉跟第一种方法没区别,甚至更麻烦。
方法三,利用Element.scrollIntoView()方法,让元素滚动到浏览器的窗口可视区域,先看下方法对应的参数
element.scrollIntoView(align-top); // Boolean型参数 element.scrollIntoView()默认参数true;
element.scrollIntoView(scrollIntoViewOptions); // Object型参数
1.Element.scrollIntoView() 等同于 Element.scrollIntoView(true) 也即默认值true,表示元素的顶端和浏览器可视区域的顶端对齐。
2.Element.scrollIntoView(false) 表示元素的底端和浏览器可视区域的底端对齐。
scrollIntoViewOptions(Object型参数)
{
behavior: "auto" | "instant" | "smooth",
block: "start" | "end",
}
1.block:"start" 相当于true,block:"end" 相当于false。
2.behavior能控制页面跳转的快慢 ,auto 和instant 都是立即直接跳转到所在锚点,不够友好,smooth表示平滑过渡到所在锚点。

在react应用中,由于url 变化会触及路由跳转,所以第三种方法优选,怎么写呢?
scrollToAnchor = (anchorName) => {
if (anchorName) {
// 找到锚点
let anchorElement = document.getElementById(anchorName);
//如果对应的id锚点存在就跳转
if (anchorElement) {
anchorElement.scrollIntoView({block: 'start', behavior: 'smooth'});
}
}



本文《网站制作中导航栏目在网站内部跳转实现方式》发布于君君营销文章,作者:admin,如若转载,请注明出处:/news/hyzx/101717.html,否则禁止转载,谢谢配合!

联系我们

18221295083
上海市浦东新区航头镇沪南公路4583号
上海市青浦区蟠龙路899号
18221295083
zhanglongfu@ijunjun.com
  • 联系我们
  • 关于我们
  • 二维码


    官方微信

    小程序
    返回
    顶部
    咨询

    扫描微信二维码,添加好友

    电话

    24小时电话:

    18221295083
    微信

    官方微信