简体   繁体   English

滚动选择错误的元素

[英]Scrollspy selecting wrong element

As you can see in this example, Bootstrap Scrollspy jumps over the navigation but does not really work as it is supposed to. 如本例所示,Bootstrap Scrollspy会跳过导航,但实际上并没有按预期的那样工作。 The wrong item is getting the .active class. 错误的项目正在获取.active类。

 $('.spycontent').scrollspy({ target: 'nav' }) 
 html, body { height:100%; } body > .container, body > .container > .row, .col-xs-6 { height:100%; } .col-xs-6 { overflow-y:auto; } .item { height:500px; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> </script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"> </script> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"> <div class="container"> <div class="row"> <nav class="col-xs-6"> <ul class="nav nav-pills nav-stacked"> <li> <a href="#group1">group1</a> <ul class="nav nav-pills nav-stacked"> <li> <a href="#question1">question1</a> </li> <li> <a href="#question2">question2</a> </li> </ul> </li> <li> <a href="#group2">group2</a> <ul class="nav nav-pills nav-stacked"> <li> <a href="#question3">question3</a> </li> <li> <a href="#question5">question5</a> </li> </ul> </li> </ul> </nav> <div class="col-xs-6 spycontent"> <div class="col-xs-12" id="group1"> group1 <div class="row"> <div class="col-xs-12 item" id="question1"> question1 </div> <div class="col-xs-12 item" id="question2"> question2 </div> </div> </div> <div class="col-xs-12" id="group2"> group2 <div class="row"> <div class="col-xs-12 item" id="question3"> question3 </div> <div class="col-xs-12 item" id="question5"> question5 </div> </div> </div> </div> </div> </div> 

The menu and content look perfect to me, why is the wrong item highlighted? 菜单和内容对我来说看起来很完美,为什么突出显示了错误的项目?

I've found out what happened: 我发现发生了什么事:

Somehow the browser did not agree with me when I told it there was a column nested in another column. 当我告诉浏览器另一列中嵌套了一个列时,浏览器以某种方式与我不同意。 TWBS CSS somehow messes the position. TWBS CSS弄乱了位置。 Removing the nest solved my problem: 删除巢解决了我的问题:

 $('.spycontent').scrollspy({ target: 'nav' }) 
 html, body { height:100%; } body > .container, body > .container > .row, .col-xs-6 { height:100%; } .col-xs-6 { overflow-y:auto; } .item { height:500px; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> </script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"> </script> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"> <div class="container"> <div class="row"> <nav class="col-xs-6"> <ul class="nav nav-pills nav-stacked"> <li> <a href="#group1">group1</a> <ul class="nav nav-pills nav-stacked"> <li> <a href="#question1">question1</a> </li> <li> <a href="#question2">question2</a> </li> </ul> </li> <li> <a href="#group2">group2</a> <ul class="nav nav-pills nav-stacked"> <li> <a href="#question3">question3</a> </li> <li> <a href="#question5">question5</a> </li> </ul> </li> </ul> </nav> <div class="col-xs-6 spycontent"> <div id="group1"> group1 <div class="row"> <div class="col-xs-12 item" id="question1"> question1 </div> <div class="col-xs-12 item" id="question2"> question2 </div> </div> </div> <div id="group2"> group2 <div class="row"> <div class="col-xs-12 item" id="question3"> question3 </div> <div class="col-xs-12 item" id="question5"> question5 </div> </div> </div> </div> </div> </div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM