2012-12-09 59 views
2

我試圖讓一個圖像滑出懸停,然後滑回一旦他們盤旋到一個新的鏈接,但我似乎無法得到它的工作。jQuery的動畫圖像滑出ul列表

這裏的JS

$(function() { 
    $('#menu_seo > li').hover(
    function() { 
     var $this = $(this); 
     $('span',$this).stop().animate({ 
      'right':'70px' 
     }).css({ 
      'zIndex':'10' 
     }); 
    }, 
    function() { 
     var $this = $(this); 
     $('span',$this).stop().animate({ 
      'right':'-10px' 
     }).css({ 
      'zIndex':'-1' 
     }); 
    } 
); 
}); 

和我的CSS:

#menu_seo { 
    position:relative; 
} 

ul#menu_seo li span { 
    height:60px; 
    width:15px; 
    position:absolute; 
    z-index:-1; 
    cursor:pointer; 
} 

ul#menu_seo li span.arrowout1 { 
    background-image:url(../arrow.png); 
    top:8px; 
    left:230px; 
} 

有人在這裏看到我的問題嗎?

+2

你或許應該建立一個[的jsfiddle(HTTP://的jsfiddle .net)爲此? – adeneo

+0

我第一次刺穿了jsFiddle,但無法弄清楚HTML結構。 http://jsfiddle.net/M6cdT/ –

+0

對不起http://jsfiddle.net/ATPG9/1/ – Blake

回答

2

首先你不能用z-index做這個動畫,你應該用css overflow:hidden屬性創建一個蒙版區域並用position隱藏動畫對象。

第二件事,你不能動畫一個對象right當該對象的CSS得到left屬性,這將創建一個衝突,將無法正常工作。位置值必須準確。

而我建議你使用jQuery綁定方法,它是堅實的,你可以使用多個事件,例如:click,hover,mouseenter,mouseleave。

這裏是工作的jsfiddle:http://jsfiddle.net/ATPG9/11/

的jQuery:

$('#menu_seo li').bind({ 
    mouseenter: function() { 
     $(this).children('span').stop().animate({'right':'70px'},200); 
    }, 
    mouseleave: function() { 
     $(this).children('span').stop().animate({'right':'-50px'},200); 
    } 
}); 

CSS:

#left_aside { 
    overflow:hidden; 
    float:left; 
    width:230px; 
    height:900px; 
    background-color:#f2dada; 
} 

ul#menu_seo li span { 
    height:50px; 
    width:50px; 
    position:absolute; 
    cursor:pointer; 
    right:-50px; 
} 
+0

謝謝我一直在撓我的腦袋一會兒,完美地工作 – Blake

+0

快速問題我已經完全複製了您的代碼,並且即時消息使用最新版本的Firefox 無標題文檔 <鏈路的rel = 「樣式表」 類型= 「text/css」href =「Untitled-3.css」/> ...那在我的頭部分,但它現在不滑動我在jsfiddle之外做了它 – Blake

+0

你應該用'document.ready(){..}'http://api.jquery.com/ready/包裝這個代碼,在你使用不同類型的ready的問題中:'$(函數(){..}' –