地  址:江苏省南京市玄武区玄武湖
电  话:4008-888-888
邮  箱:9490489@qq.com
商  务QQ:7231313266
免费云主机哪个好:网站制造中导航栏目在网站内部跳转完成方式
作者:管理员    发布于:2020-06-03 14:01   文字:【】【】【

点击导航栏目在页面内部跳转;
在普通的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&

Copyright © 2002-2020 门户网站制作_网上免费建站_免费制作app平台_建设网站制作_网站制作工作室 版权所有 (网站地图
地址:江苏省南京市玄武区玄武湖 电话:4008-888-888
邮箱:9490489@qq.com QQ:7231313266