您现在的位置是:青岛网站建设 > 小程序开发

站内部跳转实现方式"

青岛网站建设2024-05-02 19:45:43【小程序开发】7人已围观

简介点击导航栏目在页面内部跳转;在普通的html文档中 ,页面内部的锚点跳转,我们通常使用 a 标签<a href='#锚点Id'> </a>,同时在需要跳转到的位

点击导航栏目在页面内部跳转;在普通的站内转实html文档中 ,页面内部的部跳锚点跳转,我们通常使用 a 标签<a href='#锚点Id'> </a>,现方同时在需要跳转到的位置 ,要设置一个锚点(很形象的站内转实理解,渔船出海要停船了,部跳防止漂走,现方首先要抛锚大笑),站内转实怎么设置锚点,部跳对应的元素 id="锚点id",如法一 <!DOCTYPE html><html><head><meta charset="utf-8"><title>红宝书练习</title><style>div{ width: 100%;height: 500px;border: 2px solid ;background: orange;}</style></head><body><ul><li><a href="#div1">跳转div1</a></li><li><a href="#div2">跳转div2</a></li><li><a href="#div3">跳转div3</a></li></ul> <hr> <div id="div1">div1</div><div id="div2">div2</div><div id="div3">div3</div></body></html>这种方法的缺点 页面的URL 会发生变化 如URL :file:///C:/Users/31295/Desktop/html5实例/红宝书练习.html#div1,当点击上方<a>,现方页面内部跳转,站内转实同时上方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'}); } }<ul&

很赞哦!(38597)

相关文章