2012-03-29 210 views
0

我試圖用jQuery實現一個小的鼠標懸停效果,但我堅持解決一個閃爍的問題。我已經嘗試過爲mouseout插入一個延遲,但仍然有圖像的麻煩。避免在鼠標懸停閃爍

有沒有人有這方面的線索?

親切的問候,薩沙

測試網址:www.de-facto-magazin.de

$(".item").hover(

function() { 
    $(this).parent().parent().find(".title").show(); 
    $(this).parent().parent().find(".bg").show(); 
    $(this).parent().parent().find(".bg").addClass("transparent"); 
    $(this).find(".bg").removeClass("transparent"); 
    $(this).find(".title").addClass("colored"); 
}, function() { 
    $(this).parent().parent().find(".title").hide(); 
    $(this).parent().parent().find(".bg").hide(); 
    $(this).parent().parent().find(".title").removeClass("colored"); 

})​ 
+0

這是閃爍,因爲如果你在圖像之間的差距mouseout觸發。 – Straseus 2012-03-29 07:20:06

+0

相反,將懸停處理程序放在#splash上​​。這應該工作。 – Straseus 2012-03-29 07:21:04

+0

我對這些事件有些超時,並嘗試使用fadeIn和fadeOut事件 – 2012-03-29 07:26:09

回答

1

,避免閃爍,最好的辦法是對封閉的div一個單獨的懸停事件(ID =「撲通」)來處理顯示/隱藏,並且僅使用當前事件來處理哪個div處於活動狀態。沿着這些線(警告,代碼未經測試):

$("#splash").hover(
    function(){ 
     $(this).find(".title").show(); 
     $(this).find(".bg").show(); 
    },function(){ 
     $(this).find(".title").hide(); 
     $(this).find(".bg").hide(); 
    } 
); 

$(".item").hover(
    function(){ 
     $(this).parent().parent().find(".bg").addClass("transparent"); 
     $(this).find(".bg").removeClass("transparent"); 
     $(this).find(".title").addClass("colored"); 
    } 
); 
+0

Thx作爲快速支持,提示單獨懸停在「splash」-div做到了。 – bipulse 2012-03-29 07:40:30

+0

很高興能幫到你。不要忘記標記正確的答案爲未來谷歌的利益。歡迎來到堆棧溢出! – 2012-03-29 08:00:08