2010-01-17 140 views
0

我有以下情形......JQuery的 - 問題與鼠標懸停

當我將鼠標懸停在span.share,這,它觸發一個「」叫格映入眼簾。這一點完全按照我想要的方式工作。現在我設置它,當鼠標光標位於'下的' div和我mouseout,' div'下的消失,一切都恢復原樣(一切仍然是丹迪)。

我的問題是,當我將鼠標懸停在span.share,這,不要導航到「下」 DIV的,但「下」 DIV導航離開頁面的另一部分,則仍然可見。

我想設置這樣也好,如果我從span.share - 這到頁面的另一部分,則「下」 DIV皮導航。

有人知道我應該看什麼功能嗎?

jQuery代碼

$('#slider span.share-this').mouseover(function() 
{ 
    $(this).parents('li').children('div.under').css('bottom', '12px'); 
}); 

$('#slider div.under').mouseout(function() 
{ 
    $(this).css('bottom', '52px'); 
}); 

HTML代碼

<li> 
    <div class="item"> 
     <span class="share-this">Share This</span> 
    </div> 
    <div class="under"> 
     Under 
    </div> 
</li> 

測試網址:http://www.eirestudio.net/share/

+0

它的工作原理與我(Chrome 4)相同。 – cletus 2010-01-17 04:33:51

+0

剛剛在那裏檢查鉻。它沒有。將鼠標懸停在「分享此項」的藍色面板下,在其中顯示「省錢」。立即獲得最熱門的贈品!'沒有徘徊一英寸。社交媒體圖標下的div仍然存在 – 2010-01-17 04:51:09

回答

2

你已經有了一個良好的開端。你只需要添加一些鼠標懸停的及移出的。使用懸停將可能是最簡單的。

$('#slider span.share-this').hover(function() 
{ 
    $(this).parents('li').children('div.under').css('bottom', '12px'); 
}, function(){ 
    $(this).parents('li').children('div.under').css('bottom', '52px'); 
}); 

$('#slider div.under').hover(function() 
{ 
    $(this).css('bottom', '12px'); 
},function() 
{ 
    $(this).css('bottom', '52px'); 
}); 

根據您的需求以及頁面上這兩個元素的距離有多遠,您可能還想查看setTimeoutclearTimeout Javascript函數。如果跨度和div距離足夠遠,有些人可以從span.share-this中拖出而不是將鼠標懸停在div.under上,您可以設置一個超時,在一定的毫秒數之後,將隱藏div.under。然後如果它們超過了div.under你會清除超時。只是很快,它可能類似於這樣的事情:

function hideUnder(){ 
    $('#slider div.under').css('bottom', '52px'); 
} 

var under; 
$('#slider span.share-this').hover(function() 
{ 
    clearTimeout(under); 
    $(this).parents('li').children('div.under').css('bottom', '12px'); 
}, function(){ 
    under = setTimeout(hideUnder, .5*1000); 
}); 

$('#slider div.under').hover(function() 
{ 
    clearTimeout(under); 
    $(this).css('bottom', '12px'); 
},function() 
{ 
    under = setTimeout(hideUnder, .5*1000); 
}); 

當然,雖然,這將導致半秒的延遲div.under隱藏前。

+0

非常感謝Munch! - 我想要的方式是99%,當我將鼠標懸停在div下面時,我會有輕微的閃爍。非常輕微!)我嘗試過玩弄。5 * 1000但我仍然閃爍。有任何想法嗎? – 2010-01-17 05:18:27

+0

我編輯了代碼,取出了設置css底部屬性的鼠標移出效果,只是依靠超時功能來爲您做。然後該屬性不會被設置兩次。這是我的邏輯中的一個小錯誤。順便說一句,'1000'等於1秒。所以你可以相應地改變時間。試試吧,讓我知道它是怎麼回事。 – munch 2010-01-17 05:28:46

+0

蒙克,你是一個絕對的明星! - 你不知道我多麼感謝你的幫助。再次感謝你。 – 2010-01-17 05:30:53

0

...我認爲你需要調用.mouseout()上的共享這個div並隱藏你想隱藏的東西。還是我錯過了什麼:-(

+0

我試過了,但是當我這樣做並嘗試導航到div下時,它完全隱藏了div下的div。 :( – 2010-01-17 04:46:26

+0

...好吧,到更復雜的方式:-(抱歉, – vector 2010-01-17 04:57:15