zoukankan      html  css  js  c++  java
  • 滚动监听: bootstrap 的scrollspy

    滚动监听
    bootstrap 的scrollspy,需要借助.nav样式,活动的部分是加
    .active类。本身导航没有position:fixed,需要自己加入
    滚动监听。只有滚动和监听,只有默认锚点链接做调转,若想改变,只有自己写跳转方法--
    阻止a标签跳转(不直接用锚点链接做跳转);而是用animate(scrollTop)跳转,scrollTop可以设置距顶端的距离.animate({scrollTop: });
    html
    <div id="menu">
        <div id="nav-awu">
            <ul class="nav">
    <!--<li><a href="#cooperation">潮童</a></li>-->
    <li><a href="#downJacket" onclick="return a_stop('#downJacket');" >羽绒</a></li>
                <li><a href="#cotton" onclick="return a_stop('#cotton');" >时尚棉服</a></li>
                <li><a href="#sweater" onclick="return a_stop('#sweater');" >毛衣</a></li>
                <li><a href="#trousers" onclick="return a_stop('#trousers');" >裤装</a></li>
                <li><a href="#shoes" onclick="return a_stop('#shoes');" >鞋履</a></li>
            </ul>
        </div>
    </div>

    css 重写样式

    #menu ul.nav,
    #menu ul.nav:hover{border: none; background: none;height: 50px; line-height: 50px;margin: 0; padding: 0;}
    
    #menu ul.nav-tab,
    #menu ul.nav-tab:hover{border: none; background: none;height:50px;  line-height: 50px;margin: 0; padding: 0}
    #menu ul li {
    display: inline-block;
    width: 16%;
    margin: 10px 2% 0;
    height: 30px;
    /*margin: 0;*/
    padding: 0;
    border: none;
    text-align: center;
    }
    
    .nav > li > a {
    /*position: relative;*/
    display: block;
    width: auto;
    padding: 0; //默认情况下 padding有数值,需要设为0
    }
    #menu ul li a {
    margin: 0;padding: 0;
    height: 28px;
    line-height: 28px;
    font-size: 12px;
    text-decoration: none;
    color: #fff;
    }
    
    /*#menu ul li a:hover{ font-size:12px; text-decoration: none; color: #fff; border-bottom:2px solid #fefb00; }*/
    //active类
    #menu ul li.active > a,
    #menu ul li.active > a:focus{
    margin: 0;padding: 0;
    height: 28px;
    line-height: 28px;
    border:none;
    border-bottom: 2px solid #fefb00;
    font-size: 12px;
    text-decoration: none;
    color: #fff;
    background: none;
    /*text-decoration: dashed;*/
    }
    .nav > li > a:hover, .nav > li > a:focus {
    text-decoration: none;
    background: none;
    }

    js

    $(function () {
    //导航监控
    var fixWidth = ($(window).width() - $("#menu").width()) / 2;
    var scroHeight = $("#menu").offset().top;
        $(window).scroll(function () {
        if ($(window).scrollTop() >= scroHeight) {
           $("#menu").css({
            "width": $("#banner").width(),
            "position": "fixed",
            "top": 0,
            "left": fixWidth
            });
           $("#box").css("margin-top","50px");
       }
       else {
          $("#menu").css({
            "position": "relative",
            "top": 0,
            "left": 0
          });
            $("#box").css("margin-top","0");
         }
       });
        $('body').scrollspy({target: '#menu', offset: 50});//offset是根据 多少的偏移的距离 来做监听
     });
    
    function a_stop(attr){
     var isRel = $("#menu").css("position") == "relative";
     var fix = 50;
     $("html,body").animate({scrollTop:$(attr).offset().top - fix},10);
     return false;  //必须要
    }
    
    
     1.阻止a标签跳转
    参考 http://blog.csdn.net/awe5566/article/details/22583699
    href="#downJacket"  锚点链接 必须写;
    
    
    但又想阻止a标签跳转(阻止默认的滚动监听,好自己设置scrollTop),
    onclick="return fales"
    <a href="#downJacket" onclick="return a_stop('#downJacket');" >羽绒</a>

    2.自己写跳转方法 :用animate({scrollTop
    :number) 做跳转
    scrollTop
    
    

    offset是根据 多少的偏移的距离 来做监听,offset一般和导航高度有关

  • 相关阅读:
    洛谷 P1934 封印
    洛谷 P2426 删数
    洛谷 P3399 丝绸之路
    SQL SERVER镜像配置,无法将 ALTER DATABASE 命令发送到远程服务器实例的解决办法
    Step7:SQL Server 多实例下的复制
    Step6:SQL Server 数据变更时间戳(timestamp)在复制中的运用
    Step5:SQL Server 跨网段(跨机房)FTP复制
    Step4:SQL Server 跨网段(跨机房)复制
    Step3 SQL Server 通过备份文件初始化复制
    Step2:SQL Server 复制事务发布
  • 原文地址:https://www.cnblogs.com/zyjzz/p/6973632.html
Copyright © 2011-2022 走看看