2011-09-06 70 views
0

我做了一個小而簡單的代碼,可以上下移動div層200個像素。但我希望它在點擊時移動圖層,而不是鼠標懸停。 mouseleave仍然可以!移動div層點擊

如何檢查圖層是打開還是關閉。我只想在圖層上移200px時移動圖層-200px。

<script> 
    $(".block").mouseenter(function() { 
    $(".block").animate({"bottom": "+=200px"}, 300); 
    }).mouseleave(function() { 
     $(".block").animate({"bottom": "-=200px"}, 200); 
    }); 
</script> 

回答

4

使用類

<script> 
    $(".block").click(function() { 
    $(".block").not('.up').addClass('up').animate({"bottom": "+=200px"}, 300); 
    }).mouseleave(function() { 
    $(".block").filter('.up').removeClass('up').animate({"bottom": "-=200px"}, 200); 
    }); 
</script> 
+0

工程很好,但每次點擊都會持續上升。它不知道它是否上升或下降,並且它對mouseleave沒有反應。 – user681061

+0

你們有錯誤。 ('不'而不是'過濾器')現在它應該很好地工作 – mreq

+0

工作。真的對不起,因爲在屁股延遲和痛苦..我認爲,addClass'上'說,如果它是向上或向下..問題是當你點擊它,繼續點擊層繼續向上而不是向下。如果'up'在mouseleave上下降,如果下降則點擊。 – user681061

0

你嘗試,而不是 '.mouseenter' 使用 '點擊'?

+0

問題在於,每次我點擊該圖層的內部時,它都會將圖層向上移動200px。它必須知道它是否上漲或下跌。 – user681061

1
<script> 
    var direction = 1; 
    var distance = 200; 
    $(".block").click(function() { 
    $(".block").animate({"bottom": "+=" + direction * distance + "px"}, 300); 
    direction -= direction * 2; // knew there was a formula for that :P 
    }); 
</script> 

這將工作。

+0

很好地工作!我怎樣才能使它在點擊上下降,但在鼠標上下降。現在它只能在點擊上下移動。 – user681061