17

アニメーション化された .gif を含むページを初めて表示すると、ページの読み込み時に問題なく再生されます (約 2 秒続きます)。

更新 (F5) すると、.gif は再生されなくなり、gif アニメーションの最後のフレームのみが表示されます。

常に再生されるようにするためにできることはありますか?

4

5 に答える 5

15

PHP の場合、次のようにdate("Ymdgis");using を使用するよりもはるかに優れたオプションです。time()

<img src="picturePath.gif?<?php echo time();?>" />
于 2013-04-12T10:49:37.910 に答える
12

すべてのブラウザに影響する奇妙な動作..
私は通常、このスクリプトを使用して手動で更新します(jQueryを使用します)

<img id="gif_animata" src="picturePath.gif">
<script type="text/javascript">
    var gifSource = $('#gif_animata').attr('src'); //get the source in the var
    $('#gif_animata').attr('src', ""); //erase the source     
    $('#gif_animata').attr('src', gifSource+"?"+new Date().getTime()); //add the date to the source of the image... :-) 
</script>

これにより、現在の日付を追加して画像のsrcが更新されるため、ブラウザはそれを新しい画像と見なして再読み込みします。

それ以外の場合はPHPの方法で(私はこれが好きです):

<img src="picturePath.gif?<?php echo date("Ymdgis");?>" />

//for the browser it will seems that's a new picture!
<img src="picturePath.gif?2012092011207">
于 2012-09-20T13:17:59.387 に答える
3

この問題の回避策は、Javascript を使用して GIF を手動でリロードすることです。

CSS で実装された GIF (背景画像)

var element = document.getElementById(name);
element.style.backgroundImage = "none";  
element.style.backgroundImage = "url(imagepath.gif?"+new Date().getTime()+")";

HTML上に実装されたGIF(imgタグ)

var element = document.getElementById(name);
element.src = "";  
element.src = "imagepath.gif?"+new Date().getTime();

@sekmoに感謝

于 2015-08-25T02:06:19.757 に答える
1

<img>これは機能し、その下に 1 行だけ必要です。ページが不要なリソースをロードしようとしないように、最初は src 属性を入力しないことをお勧めします。

<img id="gif" src=""/>
<script>document.getElementById('gif').src="path_to_picture.gif?a="+Math.random()</script>
于 2018-02-06T19:15:41.610 に答える
-2

ブラウザがキャッシュされたバージョンを表示しているだけかもしれません。Shift キーを押しながら更新してみて、うまくいくかどうかを確認してください。

于 2012-08-01T22:57:22.960 に答える