Automatisches Scrollen
Janke
- javascript
0 Struppi
0 flashnfantasy0 Struppi
0 flashnfantasy
Ich habe in Javascript ein Programm geschrieben, dass nach Eingabe von Werten durch den Befehl window.prompt Text durch den Befehl document.write ausgibt, auf den man reagieren muss. Dabei stieß ich auf das Problem, dass nachdem der Text den Bildschirm gefüllt hatte man das Programm nicht mehr beenden konnte, da man den Text nicht mehr sehen konnte. Deswegen würde ich gerne wissen, wie die Website automatisch zum aktuellen Text scrollt.
Ich habe in Javascript ein Programm geschrieben, dass nach Eingabe von Werten durch den Befehl window.prompt Text durch den Befehl document.write ausgibt, auf den man reagieren muss. Dabei stieß ich auf das Problem, dass nachdem der Text den Bildschirm gefüllt hatte man das Programm nicht mehr beenden konnte, da man den Text nicht mehr sehen konnte. Deswegen würde ich gerne wissen, wie die Website automatisch zum aktuellen Text scrollt.
bildschirm.website.scrollTo( aktuellerText );
Im Ernst, es gibt die Befehle scrollTo oder scrollBy für das window Objekt. Die Position des aktuellen Text oder die Höhe des Fensters musst du selber rausfinden.
Struppi.
Bevor du dich um das Scrollen selbst kümmerst solltest du das mit dem dokument.write mal überlegen.
Wenn du in einem Dokument etwas reinschreibst, bedeutet das, das der Parser das ganze Dokument nochmals durchgeht und wieder in die Bildschirmdarstellung übersetzt. Und das dauert jedesmal eine gewissen Zeit, die sich dann auf Dauer schon bemerkbar macht.
Üblich wäre ein direktes Erzeugen der Darstellungsknoten mit DOM-Funktionen.
Und überhaupt scheinst du mit prompt und write einen äußerst umständlichen Weg zu gehen.
Hast du denn kein Interesse, ein normales Textfeld mit Events zu verwenden ?
Was das scrollen angeht, so würde ich dir eine DIV vorschlagen, die du mit folgenden CSS ausstattest
height: 100pt; overflow: auto;
Die div wird gescrollt mit folgenden Befehlen:
var testm = document.getElementById(identifier);
testm.scrollTop = testm.scrollHeight - testm.offsetHeight + 100;
Gruß,
Flash
Die div wird gescrollt mit folgenden Befehlen:
var testm = document.getElementById(identifier);
testm.scrollTop = testm.scrollHeight - testm.offsetHeight + 100;
Das funktioniert für en DIV?
In welchem Browser?
Struppi.
Opera, Mozilla, ach ja, auch IE ;-)
Habe einen reinen JavaScript-Chat auf diese Weise programmiert, der bereits seit einiger Zeit online ist.
Gruß,
Flash
Hi!
Habe einen reinen JavaScript-Chat auf diese Weise programmiert, der bereits seit einiger Zeit online ist.
Ein _reiner_ JavaScript-Chat? Den würde ich mir aber gerne mal ansehen...
Wie soll denn das bitte funktionieren? Oder meinst Du Serverside-JS?
Gruß, rob
www.forum35.de
Musst dich aber dort registrieren. Und online sind die Leute meist erst ab Nachmittag.
Der JavaScript ist clientseitig.
Grob der Trick ist, daß das Aktualisieren über einen nicht sichtbaren iFrame läuft, der auch Formulardaten enthält, bzw. sie bei Bedarf mit Javascript erzeugt.
In diesen Formulardaten sind zB deine Eingaben.
Serverseitig ist ganz normal PHP und mySQL.
Für den Chat-Nutzer ist das ein ganz normaler Chat, bei dem er Eingaben macht und Antworten anderer Nutzer sieht.
Gruß,
Flash
Opera, Mozilla, ach ja, auch IE ;-)
[DIV].scrollTop kennt keiner dieser Browser.
window.document.body(bzw. documentElement) haben dieses Attribut.
Struppi.
Opera, Mozilla, ach ja, auch IE ;-)
[DIV].scrollTop kennt keiner dieser Browser.
window.document.body(bzw. documentElement) haben dieses Attribut.
Struppi.
Das tut es definitiv !!!
Mein Chat nutzt das, getestet habe ich das jedoch nur auf den neuesten Browsern (also bei IE5.5 könnte es nicht klappen)
Als Alternative kannst du eine DIV mit folgenden CSS-Attributen nehmen:
position: relativ;
top: -200px;
Wenn man das in JavaScript macht, dann geht das über
divElem.style.top = pos + "px";
ganz gut
Gruß,
Flash