Jquery function einfrieren oder mit Pfeiltasten verändern

Hallo Franky,

vielen Dank nochmal für dein Skript. Es funktioniert einfach genial, nur das fortsetzen mit der Leertaste funktioniert nicht.

Jetzt möchte ich dein Skript ( hier: http://www.bestaltmed.at/speedreading/indexx.php ) in diese Seite ( http://www.bestaltmed.at/speedreading/index.php ) einbauen.
Hier wird der Text von einem div eingelesen, weitergeleitet und von anderem ausgelesen.
Wie kann ich hier die Weiterleitung durchführen und dabei dein Skript integrieren?

Würd mich echt über eine Lsg freuen.

Lg,
Chris

zuerst einmal findest du ein nun korrekt funktinoierendes Skript (Leertaste) auf
https://www.wono.net/test/speedreading/reading.html

funktioniert jetzt übrigens ohne jquery

du verlinkst das genauso wie in meiner letzten Version online.
also die Script-Dateien und css.

danach musst du ja nur noch die HTML-Elemente Platzieren. Das script richtet sich ja lediglich nach den ID der HTML-Elemente. Wie und wo die platziert sind, ist dem völlig egal.

Darf ich fragen, für welchen Zweck das Plugin entwickelt wird?
Wie willst du die Audiowiedergabe gestalten?

Hallo Chris,

sorry für die späte und negative Antwort.

Leider kenn ich mich mit jquery überhaupt nicht aus, So das ich dir nicht weiterhelfen kann.

Tut mir leid das ich dir keine positivere Antwort geben kann.

Hoffe das jemand dein Problem lösen kann.

Gruß
Andreas

Hallo Franky,

vielen Dank nochmal für deine Hilfe. Der Plugin soll ein freies Leseprogram werden zum Schnell lesen.
Kannst du bitte noch einmal kurz nachsehen, was das Program hat. Es funktioniert jetzt, aber der erste Span hüpft in die nächste Reihe nach dem Absenden des Formulars.

Konnt den Grund nach 2h Suche noch immer nicht finden.

Lg,
Chris

Hier ist nochmal der Link dazu.
http://www.bestaltmed.at/speedreading/index.php

Lg,
Chris

das liegt an deiner Funktion

function changeText() {

document.getElementById(„toread“).innerHTML = document.getElementById(„insertread“).value;
toread.style.display=‚block‘;
firstpage.style.display=‚none‘;
wrap.style.display=‚block‘;
// keyCommands.style.display=‚block‘;

}

_______

toread.style.display=‚block‘;

Damit beeinflusst du den Fluss um das Div-Feld.

kapsel den nicht sichtbaren bereich einfach in ein extra div-Block, der mit dem Javascript(Ablauf des Lesevorgangs) nichts zu tun hat.
bzw. sollte es eigentlich reichen, wenn du die Zeile raus nimmst.

Wie du vielleicht schon gesehen hast, hatte ich das Delay für den Ablauf der Timeouts gesetzt.
wenn du die
function checkKeycode(e)
Funktion ergänzt, kannst du dann ähnlich wie bei der Wortanzahl pro Schritt auch die Geschwindigkeit verändern.
(musst dies in der Berechnung der Wörter pro Minute natürlich mit einrechnen)

Auch da würde ich Ober und Untergrenzen empfehlen.

Soll es auch eine Reset-Funktion geben?

ersetze mal bitte in deiner Javascript Datei noch folgendes

_________

if (anzahl>0)
{
.
.
.
.
}
else
{
controller_showactive=false;

.
.
.

updateshowfields();
}
_________

durch

________
if (anzahl>0)
{
.
.
.
.
}
else
{
clearTimeout(timeoutcontroller); controller_showactive=false;

.
.
.

updateshowfields();
}
________

Hallo Franky,

danke für die wertvollen Tips. Ich hab das Skript schon ergänzt. :smile:
Jz würd ich gern den Button(Show) wieder entfernen und dass Skript nur über die Leertaste steuern (Start-Stop-Start).
Vll füge ich später einen Button ein für jedes Kommando (die Pfeile oder Leertaste) um es auch über ein Touchscreen zu steuern.

Ich hoffe ich schaffe es das Skript zu verbessern.

Lg,
Chris
PS: Ja ich denk auch daran ein delay für checkKeycode(e) zu setzen.

Kurze Erklärung zum Lesen:
Höhere Anzahl an Wörtern: größeres Auffassungsvermögen
Mehrere Wörter pro Zeit: schnelleres Auffassungsvermögen

Ich bin gespannt, wie sich das Projekt entwickelt.

Wenn du nochmal Probleme hast, einfach nochmal melden.
Tüftle gerne an solchen Dingen, wenn Zeit ist :wink:

Hallo Franky,

ich hab noch zwei Fragen.
a) Wie kann ich es machen dass der gleiche Befehl für das Leerzeichen sowie den Button funktioniert.
Ich hab´s so versucht.
b) Wie muss ich den delay setzen für die checkKeycode(e) Funktion damit das Skript funktioniert?
Hier nochmal der Link:
http://www.bestaltmed.at/speedreading/index.php … mehr auf http://www.wer-weiss-was.de/app/query/display_query?..

Lg,
Chris

if ((keycode==32)||(myFunction())) //Leertastenevent
{
if (controller_showactive==true)
{
controller_showactive=false;
//alert(timeoutcontroller);
//document.getElementById(‚show‘).blur();
clearTimeout(timeoutcontroller);
//alert(timeoutcontroller);
updateshowfields();
}
else
{
controller_showactive=true;
timeoutcontroller = setTimeout(color_text, controller_delay);
updateshowfields();
}
}

mach daraus einfach eine Funktion

funktion leertasteevent()
{

if (controller_showactive==true)
{
controller_showactive=false;
//alert(timeoutcontroller);
//document.getElementById(‚show‘).blur();
clearTimeout(timeoutcontroller);
//alert(timeoutcontroller);
updateshowfields();
}
else
{
controller_showactive=true;
timeoutcontroller = setTimeout(color_text, controller_delay);
updateshowfields();
}

}

und diese rufst du dann einfach unter dem Keycode auf

if (keycode==32) //Leertastenevent
{
leertastenevent();
}

die startfunktion des Button lässt du so, wie ich sie ursprünglich hatte

in die Funktion
function playtext()
{
timeoutcontroller = setTimeout(color_text, controller_delay);
}

machst du dann draus:

var firstplay=0;
function playtext()
{

if (firstplay==0)
{
timeoutcontroller = setTimeout(color_text, controller_delay);
}
else
{
leertastenevent();
}
firstplay=1;
}

ist zwar ungetestet, sollte aber dementsprechend funktionieren.

ich war ein paar tage off und konnte nicht gleich antworten.
hast du nun schon von jemeandem eine lösung bekommen?
wenn du auf jquery verzichten möchtest kannst du das ganze auch in javascript selbst schreiben oder mit php nachbauen oder so.
aber den stress würde ich mir nicht antun. du müsstest alles für viele browser separate testen. daher kann ich nur zu jquery raten. du kannst dir dein eigenes jquery uner jquery,com herunterladen und auf deinem server isnstallieren, dann brauchst du den link zu google nicht.

Hallo Franky,

danke für die AW.
Der erste part (leertastenevent über leertaste) funktioniert super.
Die selber Funktion, Leertastenevent über Button playtext funktioniert gar nicht.
Ich hab den Code:
var firstplay=0;
function playtext()
{

if (firstplay==0)
{
timeoutcontroller = setTimeout(color_text, controller_delay);
}
else
{
leertastenevent();
}
firstplay=1;
}

hier eingebaut:
http://www.bestaltmed.at/speedreading/index.php

Die Elementeninformation sag mir aber nur, dass sie das Leertastenevent nicht findet.

Hast du dazu eine Idee?

Lg,
Chris

Danke