私のウェブサイトには、3つの画像1.png, 2.png and 3.png
があります。 1.png
をクリックすると、<div id="container">
にあるimgタグにアニメーションgif 1a.gif
がロードされ、表示/更新されます。 2.png
にIをクリックすると、2a.gif
は(1a.gif
消滅ながら)が表示されなければならないというように...これは私のコードです:javascript onclickイベントでGIFを読み込んで再生する
<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>
それは、(FirefoxやChromeでテストした)、しかし信頼できない取り組んでいます!私がhtmlページをリフレッシュして1.pngをクリックすると、2.pngよりも...ある時点で、アニメーションGIFの最初のフレームのみが表示されます。 gifを実行するには、同じ画像(1,2または3.png)をもう一度クリックする必要があります。どうして?私はjqueryなしで軽量のjavascriptソリューションを探しています。私は画像をクリックするとgifが正しく再生されない理由を自分に尋ねています。
gif(5 MB)がロードされている間に読み込みイメージを表示するといいでしょう。私はそれを達成するために失敗しました:
#container {background:url('loading.png') no-repeat; }
この場合、読み込みイメージはまったく表示されません。おそらく、1つ(たとえば1a.gif)から別のもの(2a.gifなど)に直接更新しているためです。
右にも助けなかったGIFをロードする前にそれを表示:これが第二のimg bacause起こる
<img src="1.png" onclick="document.getElementById('img').src = 'loading.png';
document.getElementById('img').src = '1a.gif'" />
のgifのはとても大きいです。ロード時間とトラフィックを最小限に抑えるためにx.pngをクリックしたときにのみロードしたかったのです。 – Chris