2011-04-04 56 views
0

我在調用show或fadeIn隱藏絕對定位的div(display = none)之後讓jquery生成動畫引發了一個問題。 fadeIn/Show可以正常工作,但動畫不會執行任何操作 - 邏輯函數在測試後肯定會評估爲真。我正在使用IE9。我錯過了什麼?謝謝。同時使用jquery show()和animate()?

function checkscroll(x) { 

    $("#" + x).fadeIn(100); 
    var t = $(window).height(); 
    var m = $("#" + x).offset(); 
    var p = m.top; 
    var x = $("#" + x).height(); 

    if ((p + x) > t) { 
     $("#" + x).animate({ marginBottom: "20px"}, "fast"); 

    } 
} 
+1

看來您使用的變量「X」兩次,第一次以淡入,但後來你改變它類似於高度,也許這就是問題? – Lauw 2011-04-04 00:19:02

回答

2

寫入var x = $("#" + x).height();後,x變爲數,而不是元素ID。
因此,$("#" + x)不匹配任何內容。

您應該使用更長,更具描述性的變量名稱。

+0

啊。我的錯。感謝這一點 - 在#+ x變量上使用getelementbyid並替換所有其他變量後立即開始工作。謝謝您的幫助。 – Morgan 2011-04-04 00:40:20

0

您正在重新創建x變量,請嘗試使用另一個變量。

試試這個:

function checkscroll(id) { 
    $("#" + id).fadeIn(100); 
    var t = $(window).height(); 
    var m = $("#" + id).offset(); 
    var p = m.top; 
    var x = $("#" + id).height(); 

    if ((p + x) > t) { 
     $("#" + id).animate({ marginBottom: "20px"}, "fast"); 

    } 
}