Web ページで、水平スクロールバーがあるかどうかをテストする必要があります (プログラムで他の要素の css を変更するため)。jquery (または純粋な javascript) を使用してその情報を取得する方法はありますか?
テストしました
function isHorizontalScrollbarEnabled() {
return $(document).width()!=$(window).width();
}
ただし、すべてのブラウザで動作するわけではないようです (たとえば、最近テストした Samsung の携帯電話では動作しません)。最近のモバイル デバイスを含むすべてのブラウザーで動作する必要があります。
ありがとうございました!
編集1
plalx と laconbass が提供するソリューションをテストし、IE8、Firefox、Chrome、iPad をテストしました。IE、Firefox、Chrome で動作しますが、iPad では思い通りに動作しません。
この問題は、モバイル デバイスのズーム機能に関連しているようです。ただし、iPad でズームインすると、水平スクロールバーが表示され、幅document
が変化しません (今日テストした Samsung の電話でも同じ問題でした)。window
document.body
テストに使用したコードは次のとおりです。
<!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<title>test</title>
</head>
<body>
<div style="width: 500px; background: red;" id="test">click here to test</div>
<script type="text/javascript">
var i = 1;
$("#test").click(function(){
$(this).html("Test #" + (i++)
+ "<br>document width=" + $(document).width() + ", windows width=" + $(window).width()
+ "<br>document width=" + $(document).width() + ", body width=" + $(document.body).width()
);
});
</script>
</body>
</html>
iPadのようなモバイルデバイスでズームイン/ズームアウトした後にも機能する水平スクロールバーの存在を検出する方法はありますか?