Beiträge von Sempervivum

    Hallo domeetr , willkommen zurück!

    Hier hilft eine Erinnerung an die Schulzeit: v=s/t Die Geschwindigkeit v soll konstant sein, der Weg s ist die Breite des Elementes, das bewegt wird. Und die Zeit t ist zu ermitteln. Umgestellt t=s/v d. h. Du dividierst die Breite des Elementes, diese kannst Du durch getBoundingClientRect() ermitteln, durch eine Konstante. Auf die Weise erhältst Du die Zeit bzw. die Dauer der Animation.

    Etwas mehr als ein, zwei Zeilen Code sind es schon. Ersetze das Javascript durch dieses und versuche anhand meiner Kommentare zu verstehen, wie es funktioniert:

    So etwas ist eine Standardaufgabe, die relativ häufig vorkommt.

    Statte deine Tabelle so mit Klassen aus:

    Und setze dieses Javascript an das Ende des Body, vor das schließende </body>:

    Möglicher Weise hilft es schon weiter, wenn Du mit der Pseudoklasse :invalid das Eingabefeld rot markierst:

    Code
    input#inputField {
        outline: none;
    }
    input#inputField:invalid {
        border: 2px solid red;
    }

    Oder, wenn Du den Benutzer ganz an einer ungültigen Eingabe hindern willst, mit Javascript, dann sind die Bedingungen ohnehin besser lesbar und klarer:

    Warum bestehst Du denn darauf, das mit Bootstrap zu machen? An den ausbleibenden Antworten erkennst Du ja, dass niemand Interesse daran hat.

    Und bei deiner vorigen Frage hast Du gesehen, dass die Aufgabe mit wenigen Zeilen CSS zu lösen war, ohne eine Inflation an Container wie man es von Bootstrap kennt.

    Bootstrap war vor 10, 15 Jahren eine gute Sache aber heute veraltet und überflüssig.

    Siehe auch hier:

    Should I learn Bootstrap?

    Kernproblem: Um fest zu stellen ob 3x falsch geraten wurde, musst Du den Schleifenzähler count abfragen, nicht den String.

    Ich bin der Meinung, dass die Arbeit mit break und continue nur Verwirrung stiftet, klarer wird es, wenn man verschachtelte if-Abfragen verwendet:

    (ungetestet)

    Die Initialisierung für den Zähler hast Du ja schon. Du musst ihn nur noch am Ende der Schleife erhöhen

    Code
                    count++;
                } while (eingabe != antwort1 && count < 3)

    Da ist eine schließende geschweifte Klammer fehl am Platze:

    Code
                do {
    
                    var eingabe = prompt(count + ". Versuch. Wie hieß der erste Erdbewohner im All:", "");
    
                    } // Die schließende Klammer ist hier fehl am Platze
    
                    if (eingabe == antwort2) {

    Lösche ich sie ist der Code zumindest frei von Syntaxfehlern. Rückt man den Code sinnvoll ein, sieht man schnell, dass da etwas nicht stimmt.

    Benutze bitte Code-Tags wenn Du Code postest, das </> in der Werkzeugleist oben.

    Ja, in meinem Posting #2 hatte ich zwei Alternativen beschrieben, d. h. Du hättest nur eine umzusetzen brauchen.

    Außerdem: Du zeigst ja dem Benutzer an, der wievielte Versuch es ist. Dazu musst Du beim Zählen mit 1 beginnen, also let count = 1;.

    Wenn ich mir deinen anderen Thread ansehe, sehe ich zwei Möglichkeiten, das zu berücksichtigen:

    1. Bei der Abfrage innerhalb der do-Schleife die Schleife verlassen:

    Code
            do {
                if (count <= 3) { // Hier fehlte das "if"
                    var eingabe = prompt(count + ". Versuch. Wie hieß der erste Erdbewohner im All:", "");
                } else {
                    break;
                }

    2. Den Counter in der while-Bedingung berücksichtigen:

    Code
            } while (eingabe != antwort1 && count < 3)

    Am Anfang des do fehlte ein if:

    Code
            do {
                if (count <= 3) { // Hier fehlte das "if"
                    var eingabe = prompt(count + ". Versuch. Wie hieß der erste Erdbewohner im All:", "");
                }

    Und die schließende geschweifte Klammer ganz am Ende musst Du vor das while verschieben:

    Code
            } while (eingabe != antwort1)
            {
                document.getElementById("ergebnis").innerHTML = "3 × falsch";
            }
            //        } die schließende Klammer gehört vor das "while"

    Dann sind zumindest schon Mal die Syntaxfehler raus und die Frage wird angezeigt.