JavaScript: blinkenden Cursor implementieren
-
Hallo,
Ich will das mal versuchen und bin bisher nun soweit gekommen:var isCursorOn = true; function waitAndBlink() { if(!window.setTimeout) return; blink(); }; function blink(){ if(isCursorOn){ isCursorOn = false; document.getElementById('container').innerHTML += '<span style="background-color:#8080C0; color:#8080C0">_</span>'; }else{ isCursorOn = true; document.getElementById('container').innerHTML += '<span style="background-color:#000080; color:#000080">_</span>'; } window.setTimeout("blink()", 500); };
und
... <!-- JS - Schlachtfeld --> <div id="container" style="background-color:#000080; color:#8080C0"> <input type="button" value="execute" onclick="waitAndBlink()"><br /> </div> ...
So, nun fehlt mir noch der "Wagenruecklauf", also unter C++ waere das '\r' - wie realisiere ich das mit JavaScript am besten, so dass eben ein blinken des Cursors entsteht?
Falls es da vollkommen andere Ansaetze gaebe... bin immer offen fuer neue Vorschlaege!!
Danke im voraus!
-
Fabeltier schrieb:
So, nun fehlt mir noch der "Wagenruecklauf", also unter C++ waere das '\r'
Das ist auch in den meisten anderen Sprachen \r
Fabeltier schrieb:
Falls es da vollkommen andere Ansaetze gaebe... bin immer offen fuer neue Vorschlaege!!
Danke im voraus!
Naja, ich verstehe den Sinn immer noch nicht. Blinkender Cursor? Wo? Alles, was du machst, ist deinem <div> nach und nach neue "_" mit alternierender Farbe hinzuzufügen.
-
árn[y]ék schrieb:
Alles, was du machst, ist deinem <div> nach und nach neue "_" mit alternierender Farbe hinzuzufügen.
Nja, eben - wenn ich nach dem Zufuegen des Zeichens einen Wagenruecklauf anhaengen wuerde, dachte ich, wuerde es auch irgendwann blinken?! Aber '\r' geht irgendwie nicht bei html/js, oder?
-
Überschreib doch reinfach immer innerHTML. Du hängst immer nur etwas an. Klar dass da nie was blinkt.
-
Ok, das funktioniert auch - Danke!!
Ich hatte den Button in dem <div> Block drin und dann war der auch immer weg.
-
Sorry, wenn ich weiternerven muss, aber was ich halt versuche ist einen Text auszugeben und danach enen blinkenden Cursor zu setzen. Ich sehe momentan irgendwie keine andere Moeglichkeit, ausser einen Wagenruecklauf zu benutzen - gibt es soetwas in HTML um genau ein Zeichen "zurueck" zu laufen?
-
Fabeltier schrieb:
Sorry, wenn ich weiternerven muss, aber was ich halt versuche ist einen Text auszugeben und danach enen blinkenden Cursor zu setzen. Ich sehe momentan irgendwie keine andere Moeglichkeit, ausser einen Wagenruecklauf zu benutzen - gibt es soetwas in HTML um genau ein Zeichen "zurueck" zu laufen?
Nein, sowas gibt es nicht. Was du schreibst, steht dort.
Wenn du komplexe HTML Bearbeitung machen willst, wirst du an DOM nicht vorbei kommen.
-
höre auf an Konsolenprogrammierung zu denken, wenn du was mit HTML machst
-
Hallo,
Mir is schon klar, dass das keine Konsolenprogrammierung ist und das soll es auch nicht werden. Ich will lediglich nur ein paar Woerter "konsolenaehnlich" auf den Bildschirm geschrieben haben, als witzigen Effenkt und Spielerei.Gut, ich loese das Problem jetzt ueber die direkte Zuweisung auf den kompletten Text im <div> Bereich, per '='.
Bei den Stellen die ich gerne zurueckgelaufen haben will, gehe ich folgendermassen vor: ich speichere einen Text als "Rumpf" in einer global(er)en Variable und gebe diesen "Rumpf" + ein zusaetzliches Zeichen aus. Danach weise ich wieder nur den "Rumpf" dem kompletten Inhalt des <div> Blocks zu, ohne das zusaetzliche Zeichen.
Das klappt soweit ganz gut, wie gesagt es sind auch keine langen Texte. Ich dachte nur, evtl. ginge das auch einfacher und schoener.
-
Wenn du das letzte Zeichen wieder löschen willst, nimm doch substr() ?
-
Ja, danke, hatte ich auch zuerst genommen - Ich fand die Loesung mit dem Rumpf-String jedoch praktischer, da ich bspw. manchmal fuer das "zusaetzliche Zeichen" noch Formatierungstags davor und dahinter (Farbe, Background, etc) habe und mich bei der Rumpf-Loesung nicht um die Indizes bei substr beschaeftgen muss.
-
Fabeltier schrieb:
Das klappt soweit ganz gut, wie gesagt es sind auch keine langen Texte. Ich dachte nur, evtl. ginge das auch einfacher und schoener.
DOM