Avatar billede krogstrup Nybegynder
15. juni 2004 - 22:39 Der er 20 kommentarer og
1 løsning

Automatisk scrolle til bunden af indhold i DIV

Jeg er igang med at lave en chat der via en skjult IFRAME opdaterer en DIV på hovedsiden med nyeste beskeder.

Denne DIV har fast højde og overflow:auto, således at en scrollbar fremkommer i min DIV hvis dette er nødvendigt.

Men da de nyeste beskeder postes nederst har jeg brug for via javascript at kunne scrolle til bunden af mit lag hver gang jeg opdaterer det.

Kan man bruge scrollTo eller scrollBy på en eller anden smart måde her ?

Husk på at det ikke er scrollbaren i BODY jeg skal manipulere men en scrollbar direkte i en DIV !!!
Avatar billede roenving Novice
15. juni 2004 - 22:49 #1
element.scrollTo(0,element.scrollHeight);
Avatar billede krogstrup Nybegynder
15. juni 2004 - 22:55 #2
hmm - får fejl på denne

c=parent.document.getElementById('chat');
c.scrollTo(0,c.scrollHeight);

Objektet understøtter ikke denne egenskab eller metode

?!?
Avatar billede krogstrup Nybegynder
15. juni 2004 - 22:58 #3
ovenstående kaldes fra en IFRAME
i hoved dokumentet har jeg en ganske ordinær DIV med fast defineret højde og overflow:auto
Avatar billede krogstrup Nybegynder
15. juni 2004 - 22:59 #4
pt. tilskriver jeg nyt indhold til denne DIV via c.innerHTML = bla bla og det virker fint - men c.scrollTo er den ikke med på....

:-(
Avatar billede skovenborg Nybegynder
15. juni 2004 - 23:06 #5
scrollTo er også kun en methode i window objectet og virker derfor heller ikke på endhvert element. Den letteste måde for dig ville være at bruge en iframe hvilken du godt kan scrolle i med scrollTo
Avatar billede grunken Nybegynder
15. juni 2004 - 23:07 #6
det er lidt noget snask og skulle scrolle til bunden af en div :o(

Jeg kender kun en metode, og den fungerer p.t. kun i ie - og det bliver du vel ikke glad for !

scrollTo fungerer desværre kun på window objekter :o)

en anden mulighed er at gøre brug af offsetTop, men så skal man også kreere en egen scroller!
Avatar billede roenving Novice
15. juni 2004 - 23:10 #7
Hvad med at tage udgangspunkt i den, jeg egentlig viste dig, nemlig at lægge al den nye tekst ind i toppen ?-)
Avatar billede krogstrup Nybegynder
15. juni 2004 - 23:16 #8
jeg foretrækker nu at vise nyeste poster i bunden...

men nu har jeg smidt beskederne ind i en selvstændig IFRAME kaldet 'chatMsg'

hvorledes fanger jeg nu window objektet fra en anden IFRAME i hovedsiden ?
Avatar billede krogstrup Nybegynder
15. juni 2004 - 23:17 #9
dette virker ikke rigtig...

parent.chatMsg.window.scrollTo(0,parent.chatMsg.window.scrollHeight)
Avatar billede roenving Novice
15. juni 2004 - 23:18 #10
parent.chatMsg er så dit window-objekt, og når du skal bruger indholds-objektet er det parent.chatMsg.document.body (.innerHTML !-) osv.
Avatar billede krogstrup Nybegynder
15. juni 2004 - 23:20 #11
hmmm - hvordan ser scrollTo koden så ud ?
Avatar billede grunken Nybegynder
15. juni 2004 - 23:24 #12
parent.chatMsg.scrollTo(0,parent.chatMsg.document.body.scrollHeight);
Avatar billede grunken Nybegynder
15. juni 2004 - 23:24 #13
er vel et hit :o)
Avatar billede skovenborg Nybegynder
15. juni 2004 - 23:24 #14
prøv:
parent.chatMsg.window.scrollTo(0,parent.chatMsg.document.body.scrollHeight);
hvilket det vist nok hedder i IE
Avatar billede krogstrup Nybegynder
15. juni 2004 - 23:26 #15
yes - så begynder det at ligne noget !!!

:-)
Avatar billede skovenborg Nybegynder
15. juni 2004 - 23:26 #16
og måske
s = (parent.chatMsg.scrollMaxY) ? parent.chatMsg.scrollMaxY : parent.chatMsg.document.body.scrollHeight;
parent.chatMsg.scrollTo(0,s);
Avatar billede krogstrup Nybegynder
15. juni 2004 - 23:37 #17
tak alle for hjælpen :-)

kan I ikke alle (såfremt I ønsker points) smide et svar....?
Avatar billede roenving Novice
15. juni 2004 - 23:43 #18
Men window burde være overflødig på den næst-sidste skovenborg smed (parent.chatMsg er et window-objekt !-)

-- dvs. Nicks 23:24:06 og Ulriks 23:24:25 burde gøre det samme !o]
Avatar billede skovenborg Nybegynder
15. juni 2004 - 23:45 #19
jep, glemte at fjerne den ;-)

Bare læg mærke til den jeg lavede i 23:26:21 - den burde også virke i Mozilla (såfremt den første ikke gør ;-)
Avatar billede krogstrup Nybegynder
27. juni 2004 - 13:51 #20
hej alle

jeg savner nogle svar, så jeg kan uddele nogle points til jer....

:-)
Avatar billede skovenborg Nybegynder
27. juni 2004 - 13:58 #21
virker det da ?-)

Men okay - her er et. Og måske roenving også kunne lægge et så det bliver rimeligt fordelt :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester