JavaScript drop down - bliv i skærm

Tags:    javascript

Hej udviklere.
Jeg sidder her med et dropdown script, som jeg egentlig gerne vil have rettet lidt i. Jeg ved dog ikke, hvilke ændringer, der skal foretages, før jeg opnår den ønskede effekt. Så jeg tænkte jeg kunne finde hjælp her.

Det forholder sig således, at jeg ønsker, at den menu - som bliver "droppet-down" - skal blive inde på skærmen. Det vil sige, at den ikke må gøre skræmen bredere, selvom den dropper ned - den skal altså sørge for, hele tiden blive inde på brugeres "synligheds-felt".

Et eksempel kan ses her:
http://www.myfront.dk/test4.php
(Prøv at gøre bredden på vinduet mindre - for at se problemet)

Koden er her:
Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 17.01.2008 22:44 af Bruger #8459
4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Her er lidt pseudokode:

if(menu.offsetLeft+menu.offsetWidth > window.innerWidth) {
menu.style.left = window.innerWidth-menu.offsetWidth+'px';
}

Den bedste måde at finde browserens docu-bredde ses her:
http://www.howtocreate.co.uk/tutorials/javascript/browserwindow

og her er en måde at få menuens bredde:
http://www.aspandjavascript.co.uk/javascript/javascript_api/get_element_width_height.asp

og sidst:
http://www.aspandjavascript.co.uk/javascript/javascript_api/get_element_top_left.asp

Ellers kan du lege med PrototypeJS (prototypejs.org) som er et lille framework der kan alle de ovenstående ting.

Så burde du let kunne matche min pseudo-kode. :)



Det ser ud som om at du selv har løst problemet?!



Nej. Det er ikke løst. Hvis du prøver at gøre vinduet smalt nok, kan du se, at "drop-down"-feltet, popper ud over brugerens skærm-felt - altså, at scroll-baren (horizontal) skal køres til højre, for at kunne se hele dropdown-menuen. Problemet er netop det.




Indlæg senest redigeret d. 17.01.2008 15:25 af Bruger #8459
Mange tak for koden og liinks'ne. Jeg ser dog alligevel ikke ud til at kunne få det til at virke - kan du give mig et fingerpej om, hvordan den tilpasses den kode, som jeg viste længere oppe?



Indlæg senest redigeret d. 17.01.2008 22:45 af Bruger #8459
t