私はTwitterBootstrapを使用してiPadに最適化されたWebサイトのスタイルを設定しており、iOS5のMobileSafariの興味深いバグに直面しています。
固定位置のナビゲーションバーでアンカーリンクをタップすると、そのアンカーに正しく移動します。ただし、ページをスクロールするまで、ナビゲーションバーの他のリンクをクリックすることはできません。
Bootstrapサイトにも同じ問題があるため、問題はBootstrap自体にあるようです:http ://twitter.github.com/bootstrap/
これを回避する方法について何か提案はありますか?
以下のコードは問題を再現しています。「TestJS」または「TestjQuery」(2つの異なるタイプのスクロール、ストレート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>