На веб-странице мне нужно проверить, есть ли горизонтальная полоса прокрутки или нет (чтобы я программно изменил css какого-то другого элемента). Есть ли способ получить эту информацию с помощью jquery (или чистого javascript)?
я тестировал
function isHorizontalScrollbarEnabled() {
return $(document).width()!=$(window).width();
}
но, похоже, он работает не со всеми браузерами (например, не работает с последним телефоном Samsung, который я тестировал). Мне нужно, чтобы он работал со всеми браузерами, включая последние мобильные устройства.
Спасибо!
ИЗМЕНИТЬ 1
Я тестировал решения от plalx и laconbass, тестировал IE8, Firefox, Chrome и iPad. Работает с IE, Firefox и Chrome, но не так, как я хочу на iPad.
Проблема, по-видимому, связана с функцией масштабирования на мобильных устройствах: хотя, когда я увеличиваю масштаб на iPad, появляется горизонтальная полоса прокрутки, ширина document
, window
и document.body
не меняется (такая же проблема была и с телефоном Samsung, который я тестировал ранее). сегодня).
Вот код, который я использовал для тестирования:
<!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?
$("body")[0].scrollWidth
и$("body")[0].clientWidth
равны, даже если есть горизонтальная полоса прокрутки. - person Walid   schedule 20.04.2013