簡體   English   中英

Jquery 圖像淡出

[英]Jquery Image Fade Out

我正在使用這個 jquery 來嘗試淡出我的圖像並顯示下面的內容。 它可以完美運行,除非您將 hover 乘以它。 然后它嚇壞了,開始一遍又一遍地進進出出。 有什么我可以做的嗎?

$('#contentPosters li').hover(function(){
    $(this).find('img').fadeOut();
}, 
function(){
    $(this).find('img').fadeIn();
});

是的。 在 animation function 之前添加“stop()”。

$('#contentPosters li').hover(function(){
    $(this).find('img').stop().fadeOut();
}, 
function(){
    $(this).find('img').stop().fadeIn();
});

好的,上面在技術上可以工作,但我認為更好的工作方式是。

var delay = 200;
$('#contentPosters li').hover(function(){
    $(this).find('img').dequeue().fadeTo(delay,0);
}, 
function(){
    $(this).find('img').dequeue().fadeTo(delay,1);
});
$('#contentPosters li').hover(function(){
    $(this).find('img').stop().fadeTo('fast',0);
}, 
function(){
    $(this).find('img').stop().fadeTo('fast',1);
});

使用stop()fadeTo

stop()用於停止當前 animation。

fadeTo()的使用是因為當您在fadeIn / fadeOut期間停止 animation 時,不透明度不會重置為 100%,並且您的圖像將隨着時間的推移變得不可見。

嘗試使用.fadeToggle('fast'),它涵蓋了所有的問題。

看起來 stop() 不適用於 default.fadeToggle,因為它會在不透明度進行到一半時停止 animation。

$('#contentPosters li').hover(function(e) {
    $(this).find('img').stop().fadeTo(200,'mouseleave'==e.type)
});

http://jsfiddle.net/rkw79/w2vus/

編輯:新小提琴現在可以使用

最新更新:這是最干凈的解決方案

http://jsfiddle.net/rkw79/xBtpC/

$('#contentPosters li').hover(function(e) {
  $(this).find('img').stop(true,true).fadeToggle('fast');
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM