• div导航滚动到固定位置,且锚点定位不精准解决办法


    一、首页,设置导航效果:

    $(function () {
                //获取要定位元素距离浏览器顶部的距离
                let p= $('#zsjz-nav').offset().top;
                $(window).bind("scroll",function () {
                    //获取滚动条的滑动距离
                    let scroH = $(this).scrollTop();
                    //滚动条的滑动距离大于等于定位元素距离浏览器顶部的距离,就固定,反之就不固定
                    if(scroH>=p){
                        $("#zsjz-nav").addClass("scroll-up")
                        $('.nav-box').show();
                    }else{
                        $("#zsjz-nav").removeClass("scroll-up")
                        $('.nav-box').hide();
                    }
                });
            })

    因为导航div从display:block变成display:fixed,脱离了文档流,造成后面锚点定位不准确,这里发一下这个bug的解决办法

    <div class="container" id="zsjz-nav">
            <ul class="nav-menu">
                <li><a href="#index">招生简章</a></li>
                <li><a href="#school">学校简介</a></li>
                <li><a href="#environment">优美环境</a></li>
                <li><a href="#culture">丰富文化</a></li>
            </ul>
        </div>
        <div class="nav-box">只为了弥补导航脱离文档流后的位置</div>
    <style>
    .nav-box{ 100%;height: 140px;display: none;}
    </style>

    二、锚点定位的内容被导航遮住

    锚点位置跳转到的位置div:

    .extra{border-top: solid 100px #fff;margin-top: -100px;}

     这实际上是一种掩眼法,对齐的参考点还是在元素的顶端,只是我把元素的设置了特定的border-top(padding-top也可以,margin-top不可以),锚点就可以好像真的一样偏移到目标标题文字,但是这样会使下来元素之间产生一段距离,那么我们只要设置其margin-top为负值,而且刚好为padding-top的值即可。

    具体内容可以参考:http://www.webjx.com/css/divcss-17544.html#anchor2

    <ul class="nav-menu">
        <li><a href="#index">招生简章</a></li>
        <li><a href="#school">学校简介</a></li>
    </ul>
    
    <div class="row extra" id="school" >
        <div class="col-md-12">
            <div class="h3 title"><span class="glyphicon glyphicon-home icon"></span>学校介绍</div>
        </div>
    </div>

    总结:遇到问题解决问题,我们会更棒

  • 相关阅读:
    Python 函数式编程学习
    Perl 学习笔记-目标操作
    Ubuntu14.04-LTS 从系统安装到配置可用
    Perl 学习笔记-文件测试
    Perl 学习笔记-模块
    插曲 强大的神器 vmware
    18 11 16 网络通信 ---- 多线程 同步概念 解决资源互斥的问题
    18 11 15 网络通信 ---- 多任务----线程 threading
    18 11 14 案例 下载文件后端编写
    18 11 13 装了ssd 继续 网络通信 tcp 客户端的创建
  • 原文地址:https://www.cnblogs.com/moppet/p/12599234.html
Copyright © 2020-2023  润新知