14. maj 2004 - 19:03Der er
12 kommentarer og 1 løsning
Scrollbar detection ved overflow=auto
Hejsa
Er der mon nogen der ved hvordan man via javascript kan se om der er en scrollbar på et <div> tag med overflow=auto????
Så vidt jeg kan se er det eneste man har adgang til scrollbarens placering (myID.scrollTop), men denne er 0 både når der ikke er nogen scrollbar, og når den er der men står i toppen.
Ja den fortæller hvor langt der er scrollet ned, men denne værdi er den samme hvis der ikke er scrollet ned, og hvis der ikke er en scrollbar overhovedet....
Ja, naturligvis - men den har intet med scrollbarens placering at gøre :) Anyway, så er svaret, at der ikke findes en metode til at finde ud af, om et div har en scrollbar eller ej. /mvh
var t = parseInt(bodyH-h-90); // Den højde min <div> skal have (t) var scrollWidth=20; // normal scrollbar bredde if(t >= myID.scrollHeight) { //myID er min div, scrollHeight er højden på scrollbar del scrollWidth=0; // der er ingen scrollbar, sæt bredden til 0 }
Hvor h og 90 kommer fra er jo ligegyldigt.... t er den højde min div har. myID er det id jeg har sat på mit div tag, og det virker fremragende i mozilla, opera, IE m.m.
scrollWidth er blot et tal trækker fra bredden af div'ens indholdsplads for at kompensere for den plads scrollbaren optager. Man kan sige at scrollWidth er den plads jeg afsætter til scrollbaren.
Jeg må jo indrømme at du har ret på nogle af punkterne....
> Hvis det er ligegyldigt, hvor '90' kommer fra, hvorfor står der så ikke '172,34'? Fordi jeg synes at der skal stå 90 og fordi det passer med andre elementer på siden.
> myID er defineret af mig, <div id="myID">... Hvis det er navnet myID du opponerer imod, så er det digtig for at øge forståelsen af mit eksempel (det gik åbenbart ikke så godt) Div'en hedder S1.
Den der med scrollWidth har du helt ret i.... Det var mit variabel navn, men jeg havde overset at det var reserveret :-(
Så efter min mening havde/har vi lidt ret begge to :-)
'myID' skal være document.getElementById("myID"), hvis det skal fungere i andet end IE - og div'ets id er 'myID'. At det nu viser sig at være en reference, du selv har konstrueret tidligere i koden, kunne kun du se.
At '90' er noget, du selv har sat udfra nogle design-hensyn (og hvilke), kunne kun du vide.
... og scrollbars har i øvrigt stadig forskellige dimensioner i forskellige browsere - og under forskellige OS'er ;o)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.