Można rozpocząć od pierwszego wygaszania obrazu, kontrolując czas trwania zaniku za pomocą pierwszego opcjonalnego parametru. Po zakończeniu zanikania anonimowe wywołanie zwrotne zostanie uruchomione, a źródło obrazu zostanie zastąpione nowym. Potem, znikną w obrazie przy użyciu innego wartość czasu trwania, mierzony w milisekundach:
Original HTML:
<img src="one.png" id="one" />
JavaScript:
$('#one').hover(function() {
// increase the 500 to larger values to lengthen the duration of the fadeout
// and/or fadein
$('#one').fadeOut(500, function() {
$('#one').attr("src","/newImage.png");
$('#one').fadeIn(500);
});
});
Wreszcie, przy użyciu jQuery, to o wiele łatwiej dynamicznie wiązać zdarzenia JavaScript, bez używania żadnych atrybutów JavaScript w samym kodzie HTML. Zmodyfikowałem oryginalny znacznik img
, tak aby miał atrybuty src
i id
.
Zdarzenie jQuery hover zapewnia uruchamianie tej funkcji, gdy użytkownik najedzie myszą na obraz.
Aby uzyskać więcej informacji, zobacz także jQuery fadeOut i jQuery fadeIn.
Możliwe problemy ze czas ładowania obrazu:
Jeśli jest to pierwszy raz, kiedy użytkownik unosił się nad obrazem i składania wniosków o nim, nie może być niewielkie usterki w rzeczywistej fadeIn, ponieważ nie będzie być opóźnieniem z serwera podczas żądania newImage.png. Rozwiązaniem tego problemu jest wstępne załadowanie tego obrazu. Istnieje kilka zasobów na StackOverflow on preloading images.
to działało, dziękuję – zafrani
Nie ma za co! Cieszę się, że mogę pomóc. – jmort253