2011-12-12 49 views
1

不同於:Restart an animated GIF from JavaScript without reloading the image刷新Gif動畫緩存每個jQuery的懸停

我有播放一次(不重複循環)

我有它一個DIV中一個簡單的gif動畫圖標。當用戶將鼠標懸停在DIV上時,我想要播放GIF。當它們移出時,DIV關閉。當我想他們再次播放GIF回遷 - 我可以使用jQuery的力量緩存:

HTML:

<div class="datebox magicbox_1" id="date_1"> 
    <img id="magicimage_1" class="magicimg" src="assets/img/dates/gifpicture.gif" alt=""/> 
</div> 

的jQuery:

$("#date_1").hover(function() { 
     $("#magicimage_1").show(); 
    }, function() { 
     $("#magicimage_1").hide(); 
    }); 

// thought about these 
/* 
var myImg = new Image(); 
myImg.src = "image.gif?rnd=" + Math.random(); 
img src="filename.gif?rand=<#?=rand(1,1000);?>" alt="" 
*/ 

回答

2

我的舊代碼更新顯示圖像重置。它應該很快,因爲它已經被緩存了。

http://jsfiddle.net/gYmvN/4/

因此,新的代碼將是:

$("#date_1").hover(function() { 
    //$("#magicimage_1").show(); 
    $("#magicimage_1").show().attr('src', 'assets/img/dates/1_randomhash-aefgh.gif?rnd=' +Math.random()+''); 
}, function() { 
    //$("#magicimage_1").hide(); 
    $("#magicimage_1").hide().attr('src', ''); 
}); 

當我想刪除懸停了SRC ..所以它起着完全

+0

所以每次格框徘徊;它會一直加載gif圖像 - 我不介意它redownloading只要它再次播放.. – TheBlackBenzKid

+0

我不能使用image.src屬性,因爲這些圖像隱藏在服務器上 - 它們不能顯示爲公共(URL將僅在特定時間出現) – TheBlackBenzKid

+0

@TheBlackBenzKid最主要的是重置src屬性。這是什麼將使它重新加載。所以如果你不需要緩存,那麼只需設置圖像的src屬性即可。所以,.attr('src',「image.gif?rnd =」+ Math.random()),或者你想在那裏做的任何事情。 – Matt