Html und Javascritp Gif ein und ausblenden lassen?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Zum Icon / Button: Die Reihenfolge der Zustände ist falsch. Dein Icon (bzw. dessen Container) muss anfangs ausgeblendet werden (display: none) und in der Funktion wird er eingeblendet.

HTML:

<div id="bkaf" style="display:none">
  <img alt="Blaulicht" id="blaulicht" src="blaulicht.gif">
</div>

Im JavaScript:

document.getElementById("bkaf").style.display = "block";

Für einen ständigen Wechsel wäre eine Verzweigung praktisch.

const blaulichtBox = document.getElementById("bkaf");

if (blaulichtBox.style.display === "block") {
  blaulichtBox.style.display = "none";
}
else {
  blaulichtBox.style.display = "block";
}

Noch ein paar Anmerkungen zu deinem aktuellen HTML: Dieses ist durch und durch mit Fehlern durchsetzt. Es fehlt ein Doctype (oberste Zeile):

<!doctype html>

du verwendest zahlreiche Elemente/Attribute, die nicht zum HTML5-Standard gehören (font, align), Tags werden nicht geschlossen und dem Bild fehlt ein alt-Attribut (es beschreibt das Bild textuell; oben habe ich es bereits ergänzt).

Wirf das font-Element raus. Ersetze es folgendermaßen:

<h2 style="color:red; text-align:center"> Kopfrechentrainer Ultimate</h2>

Über das style-Attribut können CSS-Properties eingebunden werden. Mit CSS werden Elemente auf der Webseite äußerlich beschrieben. Es ist nicht die Aufgabe von HTML, dies zu tun, deshalb gab es vor über zehn Jahren noch einmal eine ganz deutliche Abkehr von Tags wie font oder Attributen wie align.

CSS könnte man, nur als Randbemerkung, noch anders in ein Dokument einbinden. Wenn du Interesse daran hast, lies Weiteres hier.

In obiger Korrektur siehst du auch gleich, wie das align-Attribut ersetzt werden sollte. Beachte des Weiteren, dass der Paragraph nach dem b-Tag geschlossen wird.

<p style="text-align:center">
  <b>Du kannst (...)</b>
</p>

Hinsichtlich deines JavaScript-Codes würde ich stets dazu raten, eindeutige/passende und ausdrucksstarke Bezeichner zu verwenden. Dann ist beim Lesen des Codes jederzeit klar, wofür Variable X oder Y gerade steht.

Wieso du die Deklaration deiner Variablen in einem Block vornimmst, ist für mich nicht ersichtlich. Lass ihn doch einfach weg.

EpicMeem 
Fragesteller
 16.05.2022, 22:47

Vielen ank für deine Antwort, du hast mir echt weitergeholfen, jetzt funktioniert es. Ich werde mir deine Ratschläge zugute nehmen und mal etwas Ordnung in den Code bringen.

1
<body>  
<div id="container"></div>
<button onclick="test()">Test</button>
<script>
function test(){
document.getElementById("container").innerHTML = '<img src="https://upload.wikimedia.org/wikipedia/commons/2/2c/Rotating_earth_%28large%29.gif" alt="">'}
</script>
</body>

Das funktioniert bei mir, versuchs halt auch mit einem link vom gif statt irgendwas herunterzuladen.

Der Code ist auch irgendwie extrem unordentlich, du mischst alles miteinander