2012-03-08 14 views
-1

嗨我想知道如果我能得到完成這段代碼的幫助,Jquery在鼠標懸停和collaspe上向左滑動一個div,不能正常工作?

我有一個與溢出div:隱藏和82px的餘裕,它是一個共享鏈接,然後ul列表與三個外部鏈接,

當我將鼠標懸停在它工作得很好,因爲在div幻燈片共享鏈接左側回保證金左:0

不過,我想,當我鼠標移出這再次坍塌父div不僅僅是共享鏈接,這是造成問題的原因,因爲當我將鼠標移出功能放入它時,意味着當您移動ul鏈接列表時,整個事物都會滑到各處,非常適合即

我基本需要的是當一個鏈接懸停時,div會滑動到左邊讓三個鏈接出現,用戶可以點擊這些鏈接,然後當用戶離開div時它會再次崩潰。

這是到目前爲止我的jQuery代碼:

$("#shareBtn").mouseover(function(){ 
     var $marginLefty = $(this).parent(); 
    $marginLefty.animate({ 
     marginLeft: parseInt($marginLefty.css('marginLeft'), 40) == 0 ? $marginLefty.outerWidth() : 0 
    }); 
}).mouseout(function(){ 
     var $marginLefty = $(this).parent(); 
    $marginLefty.animate({ 
     marginLeft: parseInt($marginLefty.css('marginLeft'), 40) == 82 ? $marginLefty.outerWidth() : 82 
    }); 
}); 

,並用它去的HTML:

<div id="player"> 


    <div id="share_feature"> 
     <div> 
     <a id="shareBtn" href="#">share</a> 
     <ul id="player_social"> 
      <li><a href="#">google</a></li> 
      <li><a href="#" >facebook</a></li> 
      <li><a href="#" >twitter</a></li> 
     </ul> 
    </div> 
    </div> 

任何幫助,這將不勝感激, 感謝

回答

1

這裏有很多關於這個話題的例子。

使用這樣的事情:

$("#shareBtn").bind('mouseenter mouseleave',function(event){ 
    var $marginLefty = $(this).parent(); 
    if(event.type == 'mouseenter') { 
     $marginLefty.animate({ 
      marginLeft: parseInt($marginLefty.css('marginLeft'), 40) == 0 ? $marginLefty.outerWidth() : 0 
     });  
    } else if(event.type == 'mouseleave') { 
     $marginLefty.animate({ 
      marginLeft: parseInt($marginLefty.css('marginLeft'), 40) == 82 ? $marginLefty.outerWidth() : 82 
     });  
    } 
}); 

我沒有測試過,但是這一個,你節省了額外尋找$(this).parent(),它應該做的,你需要什麼

1

試試這個和你的代碼一起摺疊div一旦你離開它。

$("#share_feature").mouseleave(function(){ 
    $(this).animate({ 
     marginLeft: parseInt($(this).css('marginLeft'), 40) == 0 ? $marginLefty.outerWidth() : 0 
    }); 
})