2014-11-05 58 views
0

我使用下面的淡入和淡出元素上hover如何在下面的代碼中添加setTimeout來延遲淡化動畫?

$(".hidden").hover(function() { 
    $(this).animate({ 
    opacity: 1 
    }); 
}, function() { 
    $(this).animate({ 
    opacity: 0 
    }); 
}); 

我想補充的延遲不透明度1和不透明度0之間(稍等片刻,然後淡出元素)。

我該如何做到這一點?

+0

你想用JS只有做到這一點? – Sprottenwels 2014-11-05 14:46:39

+0

@Sprottenwels是的,'setTimeout' – alexchenco 2014-11-05 14:47:42

+0

@alexchenco如何在第一個動畫回調中加入? – MimiEAM 2014-11-05 14:49:19

回答

3
$(".hidden").hover(function() { 
    $(this).animate({ 
    opacity: 1 
    }); 
}, function() { 
    var _this = $(this); 
    setTimeout(function(){ 
    _this.animate({ 
     opacity:0 
    }); 
    },1000) 

}); 
1

這會在淡出之前延遲1秒。您需要存儲對$(this)的引用,因爲在setTimeout中,這不再是DOM元素。

$(".hidden").hover(function() { 
    $(this).animate({ 
    opacity: 1 
    }); 
}, function() { 
    var that = $(this); 
    setTimeout(function() { 
     $(this).animate({ 
     opacity: 0 
     }); 
    }, 1000); 
});