Auf einer Webseite muss ich testen, ob es eine horizontale Bildlaufleiste gibt oder nicht (so dass ich die CSS eines anderen Elements programmgesteuert ändere). Gibt es eine Möglichkeit, diese Informationen mithilfe von jquery (oder reinem JavaScript) zu erhalten?Testen, ob Seite eine horizontale Bildlaufleiste hat (Computer & mobile Geräte)
I getestet
function isHorizontalScrollbarEnabled() {
return $(document).width()!=$(window).width();
}
aber es scheint nicht mit allen Browsern zu funktionieren (nicht funktioniert zum Beispiel mit einem aktuellen Samsung-Telefon ich getestet). Ich brauche es, um mit allen Browsern zu arbeiten, einschließlich der letzten mobilen Geräte.
Vielen Dank!
EDIT 1
ich die Lösungen von plalx und laconbass bereitgestellt getestet, getestet IE8, Firefox, Chrome und iPad. Funktioniert mit IE, Firefox & Chrome aber nicht so wie ich es auf dem iPad will.
Das Problem ist mit dem Zoom-Funktion auf mobilen Geräten im Zusammenhang scheint: obwohl, wenn ich auf dem iPad heran in eine horizontale Bildlaufleiste angezeigt wird, document
, window
und document.body
Breiten ändern sich nicht (war auch das gleiche Problem mit dem Samsung Telefon ich früher heute getestet).
Hier ist der Code, den ich zu Test verwendet:
<!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>
Jede Idee, wie das Vorhandensein einer horizontalen Scrollbar zu erkennen, die auf einem mobilen Gerät wie iPad in/out funktioniert auch nach dem Zoomen?
möglich duplizieren von http: // stackoverflow.com/questions/2059743/detect-elements-overflow-using-jquery – plalx
Ich habe versucht, die vorgeschlagene Lösung auf diesem Post, arbeitet mit chrome aber mit Firefox, '$ (" body ") [0] .scrollWidth' und' $ (" body ") [0] .clientWidth" sind gleich, auch wenn eine horizontale Bildlaufleiste vorhanden ist. – Walid
@plalx Vielleicht ist die Frage die gleiche, aber IMO ist es viel klarer dieses – laconbass