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

发布时间:2025-12-03 点击:3
点击导航栏目在页面内部跳转;
在普通的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'});
}
}

移动端网页设计技巧 小屏,我来了!
服务器托管收费标准一般是多少?
企业做网站排名优化有什么好处?
网站内容优化应该这样来做才是真正的王道
SEOer常常遇到的一些问题-网站建设总结
SEO聚合方案的基本思路是什么?
3C在网页设计中指什么?应该注意哪些?
简单的阿里云域名解析设置流程