2016-03-01 12 views
8

Ho le seguenti immagini:Cross-Browser Animated GIF al passaggio del mouse e inversa quando il mouse lascia

Static Image | Starting Animation | Ending Animation

e sto usando il seguente codice (jsfiddle example):

$(function() { 
 
    $("#link-gif").hover(
 
     function() { 
 
      /* starting animation */ 
 
      $(this).css("background-image", "url('http://i.imgur.com/HhsBws5.gif')"); 
 
     }, 
 
     function() { 
 
      /* ending animation */ 
 
      $(this).css("background-image", "url('http://i.imgur.com/WLFzz3S.gif')"); 
 
     }       
 
    );     
 
});
#link-gif { 
 
    width:150px; 
 
    height:40px; 
 
    border:1px solid #39464E; 
 
    background-image:url('http://i.imgur.com/YgLJoVH.png'); /*static*/ 
 
    background-size:contain; 
 
    background-repeat:no-repeat; 
 
    background-position:bottom center; 
 
    cursor:pointer; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<div id="link"> 
 
    <div id="link-gif">&nbsp;</div> 
 
</div>

Quindi, in sintesi, quello che voglio che accada è: in primo luogo ho caricare l'immagine statica. Quando qualcuno passa con il mouse sopra allo #link-gif, viene avviata la gif di animazione iniziale e, al passaggio del mouse, inizia l'animazione finale.

Per qualche motivo, quando si passa sopra l'immagine, l'immagine non viene animata. Va solo alla fine della gif. Qualcuno sa perché questo sarebbe successo?

+0

Non si può davvero controllare gif animate in qualsiasi browser. – adeneo

+0

@adeneo Beh, sto solo provando a mostrare con successo una gif animata al passaggio del mouse. Voglio dire tutto è possibile, giusto? ;) – bryan

+0

Funziona perfettamente per me – Turnip

risposta

0

Ciò accade perché l'immagine è memorizzata nella cache. Prova ad aggiungere un po 'di valore dinamico alla fine della gif, come il tempo. Controlla le modifiche apportate al tuo codice. Ho aggiunto l'ora corrente al percorso img.

$(function() { 
 
    $("#link-gif").hover(
 
     function() { 
 
      /* starting animation */ 
 
      var url = "url('http://i.imgur.com/HhsBws5.gif?time=" + new Date().getTime() + "')"; 
 
      $(this).css("background-image", url); 
 
     }, 
 
     function() { 
 
      /* ending animation */ 
 
      var url = "url('http://i.imgur.com/WLFzz3S.gif?time=" + new Date().getTime() + "')"; 
 
console.log(url); 
 
      $(this).css("background-image", url); 
 
     }       
 
    );     
 
});
#link-gif { 
 
    width:150px; 
 
    height:40px; 
 
    border:1px solid #39464E; 
 
    background-image:url('http://i.imgur.com/YgLJoVH.png'); /*static*/ 
 
    background-size:contain; 
 
    background-repeat:no-repeat; 
 
    background-position:bottom center; 
 
    cursor:pointer; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<div id="link"> 
 
    <div id="link-gif">&nbsp;</div> 
 
</div>

Problemi correlati