2013-12-11 4 views
2

Я пытаюсь применить бутстрап ScrollSpy к моему приложению navbar. Мне что-то не хватает, потому что я думаю, что все сделано правильно.Bootstrap 3 Scrollspy не работает с Affix и Panel

Вот мой код:

 <script type='text/javascript' src="//code.jquery.com/jquery.js"></script> 
     <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css"> 
     <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-theme.min.css"> 
     <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script> 

<div class="container"> 
     <div class="row"> 
      <div class="col-md-2"> 
       <div id="sidebar"> 
        <ul class="nav navbar-default affix"> 
         <li><a href="#correct">Correct</a></li> 
         <li><a href="#incorrect">Incorrect</a></li> 
         <li><a href="#omission">Omission</a></li> 
         <li><a href="#premature">Premature</a></li> 
        </ul> 
       </div> 
      </div> 


      <div id="mycontent" class="col-md-10" data-spy="scroll" data-target="#sidebar"> 

        <div id="correct" class="panel panel-primary"> 
         <div class="panel-heading"> 
          <h3 class="panel-title">Correct responses</h3> 
         </div> 
         <div class="panel-body">   
          <h4>Graphic</h4> 
           <img src="/graph/group/post-op/lineerror/12/correct" onerror="imgError(this);"> 
          <h4>Table</h4> 
           Table here 
         </div> 
        </div> 

        <div id="incorrect" class="panel panel-primary"> 
         <div class="panel-heading"> 
          <h3 class="panel-title">Incorrect responses</h3> 
         </div> 
         <div class="panel-body">   
          <h4>Graphic</h4> 
           <img src="/graph/group/post-op/lineerror/12/incorrect" onerror="imgError(this);"> 
          <h4>Table</h4> 
           Table here 
         </div> 
        </div> 

        <div id="omission" class="panel panel-primary"> 
         <div class="panel-heading"> 
          <h3 class="panel-title">Omission responses</h3> 
         </div> 
         <div class="panel-body">   
          <h4>Graphic</h4> 
           <img src="/graph/group/post-op/lineerror/12/omission" onerror="imgError(this);"> 
          <h4>Table</h4> 
           Table here 
         </div> 
        </div> 

        <div id="premature" class="panel panel-primary"> 
         <div class="panel-heading"> 
          <h3 class="panel-title">Premature responses</h3> 
         </div> 
         <div class="panel-body">   
          <h4>Graphic</h4> 
           <img src="/graph/group/post-op/lineerror/12/premature" onerror="imgError(this);"> 
          <h4>Table</h4> 
           Table here 
         </div> 
        </div> 
       </div> 
     </div>   
    </div> 

Мои ссылки и мой аффикс правильно работать, но я не могу увидеть scrollspy.

См. Адаптированный jsfiddle here.

ответ

5

«Чтобы легко добавить scrollspy поведение вашей topbar навигации, добавить data-spy="scroll" к элементу вы хотите, чтобы шпионить (чаще всего это будет <body>). Затем добавьте атрибут data-target с ID или класса родителя элемент любого компонента Bootstrap .nav. " - docs.

Эти атрибуты должны быть добавлены в зависимости от того, какой элемент прокручивается. Если #mycontent не является overflow:scroll, вам необходимо добавить те data- атрибуты вместо вашего тега <body>.

http://jsfiddle.net/mblase75/qKFqg/

+0

Я добавил 'переполнения: scroll' в' # mycontent', но он по-прежнему не работает. См. Http://jsfiddle.net/J3bDZ/6 – Wistar

+0

Он отлично работает, если вы добавите 'height' в' # mycontent', чтобы он прокручивался. Вам также нужно указать стили для элемента 'active'. (В вашей скрипке jQuery загрузился после Bootstrap, так что ничего не сработало бы.) [Скрипка] (http://jsfiddle.net/mblase75/qKFqg/) – Blazemonger

Смежные вопросы