2013-08-23 148 views
0

我想在bottom鏈接click動畫上一個div的3px如果位置已經30%和上升,如果是3px的後。無法獲取Div的位置動畫

$(document).ready(function() { 

    $('#picsClick').click(function() { 

     if ($('#mainLogo').position().bottom === '30%') { 
      $("#mainMenu").animate({ bottom: "3px" }, 1100); 
     } 
     else if (($('#mainLogo').position().bottom === '3px')) { 
      $("#mainMenu").animate({ bottom: "30%" }, 1100); 

     } 

    }); 
}); 

不知怎的,它不運行,因爲我已經設置MAINMENU div位置bottom30%,它的位置是absolute
謝謝。

+0

在點擊處理程序添加這是您的第一行:'警報;($( '#mainLogo')位置()底部。) ' –

+0

是否這樣,它說未定義。 – designerNProgrammer

+0

CAn你做小提琴,這將幫助很多。 – JonathanRomer

回答

1

position()返回的對象只包含left和top屬性。所以底部是和未知的屬性,因此你的代碼失敗。請致電jQuery documentation

0

jquery position API確實給出了一個元素的座標。 X和Y--這對你來說意味着頂部和左邊。你需要重構你的邏輯。即使你這樣做後,你應該注意返回的值是數字 - 絕對值基於你的元素位置w.r.t頁面的尺寸。你不能指望百分比。因此你的比較邏輯也會改變。

例如,如果這是你的元素:

<input type="text" id="inpId" name="address" value="* Property Address :" style="top: 30%; position: absolute; "> 
console.log(typeof $('#inpId').position()['top']) // "number" 
console.log(typeof $('#inpId').position()['bottom']) // "undefined" 

jquery position

編輯:以圍繞着底部你的邏輯,你需要計算同在頂部的條款。看到這個問題:

Get bottom and right position of an element

希望它能幫助:)

+0

那麼我怎麼能真正動畫的dv底部0px,然後在另一個點擊動畫到t0p? – designerNProgrammer

+0

請參閱上面編輯的答案。謝謝。 –