毎回ファイルをダウンロードせずにgifアニメーションを再開することはできますか?私の現在のコードは次のようになります:
var img = new Image();
img.src = 'imgages/src/myImage.gif';
$('#id').css('background-image', 'url("' + img.src + '?x=' + Date.now() + '")' );
編集
GIFをDOMに挿入しても、GIFアニメーションが再開されませんでした。これは画像のsrcにランダムな文字列を追加することによってのみ達成できますが、これにより画像が再度ダウンロードされます。
Gifをダウンロードせずにgifアニメーションを再開できるかどうか知りたい。
同様の要件がありました。
var img = document.createElement("img"),
imageUrl = "http://i73.photobucket.com/albums/i231/charma13/love240.gif";
img.src = imageUrl;
document.body.appendChild(img);
window.restartAnim = function () {
img.src = "";
img.src = imageUrl;
}
たとえば、facebookの場合-アニメーション絵文字は.gifではなく、動的に設定された背景オフセットを持つpngファイルの静的フレームのセットです。このようにして、JavaScriptからアニメーションを完全に制御できます。アニメーションを一時停止/一時停止解除したり、速度を変更したりすることもできます。
.gifファイルを別々のフレームに分割し、サーバー側で動的に.pngファイルを生成することが可能です。
これは私にとって良い週末のプロジェクトのようです;)
restartGif(imgElement){
let element = document.getElementById(imgElement);
if (element) {
var imgSrc = element.src;
element.src = imgSrc;
}
}
// Example:
restartGif("gif_box")
永久にループさせるだけですか?それ以外の場合は、ajaxリクエストを使用して(gifの期間)再起動できます。
javaScriptでも可能です。
var gif
window.onload=function () {
gif=document.getElementById('id')
setInterval(function () {
gif.src=gif.src.replace(/\?.*/,function () {
return '?'+new Date()
})
},5000)//duration of your gif
}
function refreshgif() {
var giffile = $(".gif-class");
giffile.src = giffile.src;
}