Auf meiner Website habe ich drei Bilder 1.png, 2.png and 3.png
. Wenn ich auf 1.png
klicke, möchte ich das animierte gif 1a.gif
geladen und in dem img-Tag unter <div id="container">
angezeigt/aktualisiert werden. Wenn ich auf 2.png
klicken, sollte 2a.gif
(während 1a.gif
verschwindet) angezeigt werden, und so weiter ... Das ist mein Code:Laden und spielen Sie ein gif mit Javascript onclick Ereignis
<html>
<body>
<div>
<img src="1.png" onclick="document.getElementById('img').src = '1a.gif'" />
<img src="2.png" onclick="document.getElementById('img').src = '2a.gif'" />
<img src="3.png" onclick="document.getElementById('img').src = '3a.gif'" />
</div>
<div id="container">
<img id="img" src="1a.gif" />
</div>
</html>
</body>
Es funktioniert, aber unzuverlässig (getestet mit Firefox und Chrome)! Wenn ich die HTML-Seite aktualisiere und auf 1.png, dann auf 2.png klicke, wird an einem Punkt plötzlich nur der erste Frame des animierten Gifs angezeigt. Ich muss noch einmal auf das gleiche Bild klicken (1,2 oder 3.png), um das gif laufen zu lassen. Warum? Ich bin auf der Suche nach einer leichten JavaScript-Lösung ohne jquery. Ich frage mich nur, warum das gif nicht richtig abgespielt wird, wenn ich auf das Bild klicke.
Als eine Randnotiz: Es wäre schön, ein Ladebild zu zeigen, während das gif (5 MB) geladen wird. Ich nicht, dass die Verwendung von CSS achive:
#container {background:url('loading.png') no-repeat; }
In diesem Fall wird das Laden Bild überhaupt nicht angezeigt. Wahrscheinlich, weil ich direkt von einem (z. B. 1a.gif) zu einem anderen aktualisiere (z. B. 2a.gif).
Zeige es direkt vor dem gif Laden nicht so gut geholfen hat:
<img src="1.png" onclick="document.getElementById('img').src = 'loading.png';
document.getElementById('img').src = '1a.gif'" />
die Gifs sind so groß. Ich wollte sie nur laden, wenn x.png angeklickt wird, um Ladezeiten und Verkehr zu minimieren. – Chris