На уеб страница трябва да тествам дали има хоризонтална лента за превъртане или не (така че програмно да променя 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