我正在使用 Twitter Bootstrap 来设计一个 iPad 优化网站的样式,并且在 iOS5 上的 Mobile Safari 中遇到了一个有趣的错误。
点击固定位置导航栏中的锚链接后,它会正确地将我带到该锚点。但是,在滚动页面之前,我无法单击导航栏中的任何其他链接。
问题似乎出在 Bootstrap 本身,因为 Bootstrap 站点也有同样的问题:http: //twitter.github.com/bootstrap/
有关如何解决此问题的任何建议?
下面的代码重现了该问题。请注意,如果您单击“Test JS”或“Test jQuery”(两种不同类型的滚动、直接 JS 或基于 jQuery),您将无法再次单击,直到您手动移动页面。
这是基本的演示代码(.jsp):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style type="text/css">
#testDiv {
position: fixed;
bottom: 0;
right: 0;
background: gray;
padding: 20px;
}
#jsDiv,
#jQueryDiv {
width: 200px;
display: block;
height: 40px;
background-color: red;
}
#jQueryDiv {
background-color: yellow;
}
</style>
<script type="text/javascript">
function testScroll() {
alert("JS");
scroll(0, 5000);
}
function testjqScroll() {
alert("JQuery");
$(window).scrollTop(500);
}
</script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.js"></script>
</head>
<body>
<%for (int i = 0; i < 500; i++) {%>
Line <%=i%><BR/>
<%}%>
Bottom
<div id=testDiv>
<a id="jsDiv" href="#" onclick="testScroll();return false;">Test JS</a>
<a id="jQueryDiv" href="#" onclick="testjqScroll();return false;">Test jQuery</a>
</div>
</body>
</html>