Bootstrap 3滚动奇怪的行为 - 不在滚动时更新活动类

时间:2013-11-28 18:45:51

标签: twitter-bootstrap twitter-bootstrap-3

我正在以下网站上实施scrollspy(http://getbootstrap.com/javascript/#scrollspy

http://www.bestcastlesintown.co.uk/RC/php/index.php

我使用<body>标记上的数据属性,如<body data-spy="scroll" data-target=".bcit-sidebar">

即使我的DOM中的HTML结构奇怪,但是rolllspy不能正常工作,我无法理解为什么。我已使用数据属性正确调用它 - 但活动类(侧栏中的浅蓝色)始终应用于包含<li>的{​​{1}}。当用户滚动时,侧边栏不会在<a href="#party-games">Party Games</a>上动态更新活动类。

数据属性应该像这样应用于body标签。

<li>

另外,我确保侧边栏导航结构与可解析目标一样:

<body data-spy="scroll" data-target=".YOUR NAV CONTAINER">

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

我想我经过多次尝试后才发现了这个问题...

尝试简单地添加DOCTYPE:

<!DOCTYPE html>
<html lang="en">
    ...

Bootstrap需要HTML5 DOCTYPE,您可以在Basic Template段中看到它:

<!DOCTYPE html>
<html>
  <head>
    <title>Bootstrap 101 Template</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- Bootstrap -->
    <link href="css/bootstrap.min.css" rel="stylesheet">

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
      <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
    <h1>Hello, world!</h1>

    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="https://code.jquery.com/jquery.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="js/bootstrap.min.js"></script>
  </body>
</html>

还需要HTML5 DOCTYPE mentioned in v2.3.2。对于v3.0.2,它开始显而易见。

答案 1 :(得分:0)

我的DOCTYPE错了 - 出于某种原因,这会阻止页面工作:

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">

我将DOCTYPE更改为:

<html lang="en">

和scrollspy有效。如果有人可以扩大原因,请这样做。