Avatar billede razmuz_dk Nybegynder
02. november 2003 - 18:30 Der er 11 kommentarer og
1 løsning

Scroll ned i <span>

Hey Eksperter

Jeg sidder og er ved at opbygge en tekstchat i php/mysql/javascript.

Selve chattens "tekstvindue" hvor brugernes beskeder kommer frem er en <span style="overflow:auto">. Nyeste chatbeskeder indsættes via innerHTML nederst i <span>'en.

Når chatvinduet er helt fyldt af tekst fremkommer en vertikal scrollbar ude til højre. Jeg ønsker nu at denne scrollbar skal scrolle nedad konstant. Så snart den har mulighed for det skal den scrolle ned (der tilføjes jo hele tiden nyt indhold til <span>'en). Fx via en løkke.

Håber i forstår

På forhånd tak

mvh.
Rasmus
Avatar billede razmuz_dk Nybegynder
02. november 2003 - 18:32 #1
... hvordan gør man det - så det belaster klientens computer mindst muligt?
Avatar billede bearhugx Nybegynder
02. november 2003 - 18:36 #2
arbejder lige på noget kode :-)
Avatar billede olebole Juniormester
02. november 2003 - 18:44 #3
<ole>

Det bliver let noget rod. Hvorfor ikke bare skrive seneste besked øverst?
Det giver også betydelig læsbarhed - og bruges derfor i en hel del kommercielle chats  ;o)

/mvh
</bole>
Avatar billede olebole Juniormester
02. november 2003 - 18:48 #4
I øvrigt er din prioritering helt forkert. Du skal _virkelig_ skrive slamkode for at belaste klientmaskinen væsentligt. Den står jo og strutter af ubrugte RAM og CPU-kraft.

Problemet er - ikke mindst i chat-sammenhæng - serveren. Her ligger den snævre flaskehals - og det er her, kode-fårene skilles fra bukkene  ;o)
Så meget arbejde, som overhovedet muligt, skal lægges ned på klienten, hvis du vil lave en effektiv chat
/mvh
Avatar billede razmuz_dk Nybegynder
02. november 2003 - 18:52 #5
Ole -> Ja måske har du ret. Men tekstboxen hvor brugernes indtaster deres beskeder, i befinder sig nederst i chatten. Derfor mener jeg også, at de nyeste chatbeskeder bør komme frem nederst, så man kan fokusere på et mindre område.
Avatar billede razmuz_dk Nybegynder
02. november 2003 - 18:56 #6
Ole (18:48:22) -> På det område, at lægge arbejdet hos klienten, er jeg, synes jeg selv, ret erfaren efter både at have flere tekstchats men også adskillige såkaldte "3dchats" som kræver mere af serveren! Og jeg ved præcis hvad du mener med "fårene fra bukkene" ;)

Grunden til at jeg skrev det var, at man for at få en "glidende nedscrollning" skulle have en løkke der kørte konstant og hele tiden. Det formodede jeg ville tage meget kraft hos klienten.
Avatar billede olebole Juniormester
02. november 2003 - 18:56 #7
rasmuz.dk >> Tjaaahhh ... så må du jo lave det anderledes. Det synes nu ikke at være et problem på andre chats  :)
Avatar billede olebole Juniormester
02. november 2003 - 18:58 #8
Ja, du kommer let ud i en rodet løsning ... derfor mit andet forslag  :)
Avatar billede bearhugx Nybegynder
02. november 2003 - 19:34 #9
ok... håber det kan hjælpe dig med din chat (omend jeg gik ud fra at man kunne sådan noget, når man er så velbevandret konstruktion af forskellige chat's (hvad hedder en chat overhovedet i flertal ?!)

Here goes :

<html>
    <head>
        <script type="text/javascript">
            function addNewContent() {
                cc = document.getElementById("chatContent");
                d = new Date();
                cc.innerHTML = cc.innerHTML + "["+d+"] - HEJ<br/>";
            }
           
            function scrollForever() {
                ca = document.getElementById("chatArea");
                cc = document.getElementById("chatContent");
                ca.scrollTop = cc.offsetHeight - ca.offsetHeight;
                setTimeout( "scrollForever()", 100);
            }
        </script>
    </head>
    <body onLoad="scrollForever();">
        <div id="chatArea" style="border:1px solid black; width:500px; height:300px; overflow:auto;">
            <div id="chatContent">
                bla bla bla<br/>
                bla bla bla<br/>
                bla bla bla<br/>
                bla bla bla<br/>
                bla bla bla<br/>
                bla bla bla<br/>
                bla bla bla<br/>
                bla bla bla<br/>
                bla bla bla<br/>
                bla bla bla<br/>
            </div>
        </div>
        <input type="button" onclick="addNewContent()" value="Add new content"/><br/>
    </body>
</html>

Bare tryk [Add new content] et par gange for at tilføje nok til at scrollen skal igang :-)
Avatar billede bearhugx Nybegynder
02. november 2003 - 19:36 #10
men bemærk at man ikke umiddelbart får lov til at scrolle op, da den placerer sig i bunden hvert 1/10. sekund
Avatar billede olebole Juniormester
02. november 2003 - 19:39 #11
Nemlig  ;o) ... (02/11-2003 18:58:15)
Avatar billede razmuz_dk Nybegynder
04. november 2003 - 10:49 #12
Tusind Tak! Det ser fint ud!
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