Twitter bootstrap scrollspy无法使用nav-pills和平滑滚动

时间:2012-12-11 23:47:27

标签: javascript jquery twitter-bootstrap

我使用Bootstrap的导航丸作为我的顶级导航栏,当点击一个药丸时,我使用了一段代码滚动到页面上的某个点。我现在正试图让scrollspy工作,所以药丸的类将从“活动”变为“禁用”(我为“残疾”类设置了特殊的css,但我没有运气。有什么想法吗?< / p>

以下是代码:

     <!-- Bootstrap -->
    <link href="bootstrap/css/bootstrap.css" rel="stylesheet">
    <link href="pantastic.css" rel="stylesheet">
    <link href='http://fonts.googleapis.com/css?family=Questrial|Lobster|Open+Sans:300,400|Josefin+Sans:300,400' rel='stylesheet' type='text/css'>
    <link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script src="js/jquery.slideto.min.js" type="text/javascript"></script>
    <script type="text/javascript">
    $(document).ready(function(){ 

        $(window).scroll(function(){
            if ($(this).scrollTop() > 100) {
                $('.scrollup').fadeIn();
            } else {
                $('.scrollup').fadeOut();
            }
        }); 

        $('.scrollup').click(function(){
            $("html, body").animate({ scrollTop: 0 }, 600);
            return false;
        });

        $('.toplogo').click(function(){
            $("html, body").animate({ scrollTop: 0 }, 600);
            return false;
        });

        $('.firstscroll').click(function(){
            $("html, body").animate({ scrollTop: 0 }, 600);
            return false;
        });

        $('.secondscroll').click(function(){
            $("html, body").animate({ scrollTop: 500 }, 600);
            return false;
        });

        $('.thirdscroll').click(function(){
            $("html, body").animate({ scrollTop: 1450 }, 600);
            return false;
        });

        $('.fourthscroll').click(function(){
            $("html, body").animate({ scrollTop: 2740 }, 600);
            return false;
        });

    });




    </script>  
  </head>

  <body data-spy="scroll" data-target=".nav nav-pills">

     <div class="navbox">
      <div class="container">
        <div class="row">
          <div class="span5">
        <a href="#"><img class="toplogo" src="navlogo.png" alt="logo"/></a>
        </div>
        <div class="span10 offset5">
        <div class="navbuttons">
        <ul class="nav nav-pills custom">
        <li class="active firstscroll">
            <a href="#1">Home</a>
        </li>
         <li class="disabled secondscroll"><a href="#secondunit">What is Pantastic?</a></li>
         <li class="disabled thirdscroll"><a href="#3">About Us</a></li>
         <li class="disabled fourthscroll"><a href="#4">FAQ</a></li>
         <li class="disabled"><a href="#modal" data-toggle="modal"><img src="Price_Button.png" alt="Order Now" onmouseover="this.src='Price_Buttonhover.png'" onmouseout="this.src='Price_Button.png'"/></a></li>
       </ul>
       </div>
      </div>
      </div>
    </div>
  </div>

   <div class="herounit">
    <div class="container">

          <h1> Introducing Pantastic! </h1>


      <div class="row">
        <h4> Pantastic is the easiest way to bring your iPhone panoramas to life! Simply send us your panorama, and we will print, matte, and ship it right to your doorstep. </h4>
      </div>
        <div id="secondunit">
      <div class="row">
          <img src="pricetag2.png" alt="pricetag">
    </div>
   </div>
   </div>
 </div>

2 个答案:

答案 0 :(得分:0)

我知道这个问题已过时但我今天遇到了这个问题,并希望帮助那些未来需要找到这个问题的人。

确保将data-target属性设置为导航的PARENT元素(id / class)。我在使用jQuery插件animatescroll时有类似的问题。 BootStrap文档也说明了....

所需的可解析ID目标

Navbar链接必须具有可解析的ID目标。例如,一个家必须对应于DOM中的某些内容,例如。

Resolvable ID targets required per BS documentation

答案 1 :(得分:0)

而不是:

<body data-spy="scroll" data-target=".nav nav-pills">

使用此:

<body data-spy="scroll" data-target=".navbuttons">

首先,我不确定你是否可以定位两个类,我相信它只需要一个目标元素,而且你可以通过两种方式引用目标元素。加上它的正确目标它应该是父级,但如果你曾经用两个类名引用一个单独的元素,你需要引用它,如下所示:

<body data-spy="scroll" data-target=".nav.nav-pills">