我正在以下网站上实施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">
有什么想法吗?
答案 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有效。如果有人可以扩大原因,请这样做。