• js模拟html锚链接


    当我们在html页面内部进行锚点内部链接时,锚点会将目标定位到页面顶部,而某些情况下,我们的需求可能除了内部链接之外,还要讲锚点目标置于特定位置。比如下面这个例子

    可以看到,这个例子中,由于顶部盒子fixed定位,这种情况下,我们内部链接的时候,对应内容置顶到窗口顶部,会被顶部盒子遮住一部分内容。

    怎么办呢?

    憋慌,如果你熟悉js,那我们可以轻松的搞定这个问题!

    原理很简单,只需要点击标签的时候,让滚动条滚动到你想定位的位置就好了。

    demo如下:

    html代码:

    <ul class="ul">
          <li class="li on" data-info="StrokeFeature">行程特色</li>
          <li class="li" data-info="ReferenceTravel">参考行程</li>
          <li class="li" data-info="cost">费用包含</li>
          <li class="li" data-info="exclusive">不含项目</li>
    </ul>
    <div id="StrokeFeature">……</div>
    <div id="ReferenceTravel">……</div>
    <div id="cost">……</div>
    <div id="exclusive">……</div>

    JavaScript代码:

    var list = document.querySelectorAll(".li");
    // alert(list.length);
    for (var i = 0; i < list.length; i++) {
        list[i].onclick = function() {
            for (var k = 0; k < list.length; k++) {
                list[k].className = "li";
            };
            // alert(StrokeFeature.offsetTop);
            this.className = "li on";
            var attr = this.getAttribute("data-info");
            var classDiv = document.querySelector("#" + attr);
            // 滚动条滚动到对应标签内容
            window.scrollTo(0, classDiv.offsetTop - StrokeFeature.offsetTop);
        }
    };
    
    var StrokeFeature = document.querySelector("#StrokeFeature"),
        ReferenceTravel = document.querySelector("#ReferenceTravel"),
        cost = document.querySelector("#cost"),
        exclusive = document.querySelector("#exclusive");

    是不是很简单呢?!

    其实一开始,我用了个很蠢的方法,就是直接设置滚动条的高度

    这个方法虽然解决了定位的问题,但是会带来一个影响,如下图:

    当你在同一个页面还需要用到onscroll事件的时候,上面的方法会将scrollTop的值设置为常量值。如果你需要用到scrollTop进行一些逻辑判断,那么问题就出现了……

    好了,说了这么多,其实只想说明一个方法,就是window.scrollTo(x,y);关于此方法的更多详解,请自行百度,(*^__^*) 嘻嘻……

    最后,在线demo

  • 相关阅读:
    获取Enum枚举值描述的几法方法
    Android开发入门 Button事件实现的方法(原创)
    最有价值的.Net第三方控件
    Eclipse快捷键大全(转载)
    recovery教程
    XP系统通过无线网卡共享宽带给其他设备,正确的共享设置(修正版,绝对可行)
    使用Eclipse写QT
    Android 4.0模拟器弹出“谷歌拼音输入法”已停止运行的解决方法
    C# 枚举用法总结
    谷歌安卓系统使用必读,什么是root, Recovery, Radio, APP TO SD, Rom
  • 原文地址:https://www.cnblogs.com/guiren/p/5091953.html
Copyright © 2020-2023  润新知