wie Status von overflow:auto; abfragen
nobswolf
- javascript
0 Christian S.0 nobswolf
0 ChrisB
Wenn ich ein DIV mit dem Style overflow:auto; versehen habe, wie kann ich dann in JS abfragen, ob das DIV gerade einen Scrollbar hat?
Ich möchte andere Elemente in Abhängigkeit davon unterschiedlich gestalten.
Wenn ich ein DIV mit dem Style overflow:auto; versehen habe, wie kann ich dann in JS abfragen, ob das DIV gerade einen Scrollbar hat?
Wenn das Element keinen Border hat, dann kannst du es einfach abfragen mit:
hasScrollbar = element.offsetWidth != element.clientWidth;
Ansonsten muss du erst noch den linken und den rechten Border von element.offsetWidth abziehen.
Geht dann aber nur für Breiten in px Angaben.
Entweder du weist du oder du holst sie dir. Stichwort: getComputedStyle.
Gruß!
hasScrollbar = element.offsetWidth != element.clientWidth;
Ja so ähnlich hab ich das nun auch gebastelt. Ich habe halt gehofft es gäbe so etwas wie ein document.div.scrollbars.visible aber das scheint nur mit einem ganzen Fenster zu funktionieren. Hat das einen bestimmten Grund?
var p = document.getElementById('liste');
var diff = p.scrollHeight - p.clientHeight;
if (diff <= 0){
// machwat
}
Hi,
Wenn ich ein DIV mit dem Style overflow:auto; versehen habe, wie kann ich dann in JS abfragen, ob das DIV gerade einen Scrollbar hat?
Dann wird sich scrollHeight/-Width von offsetHeight/-Width unterscheiden.
MfG ChrisB