0

小さな問題があり、解決できないようです。

アニメーション機能の機能に問題があります。div をクリックすると完全に下にスライドしますが、div をもう一度クリックしても上にスライドしません。

それは私が使用するコードです....

$("#menu").click(function () {
    if($(this).offset().bottom == -40) {
        $(this).animate({'bottom': '0px'}, 1000);
    }
    else {
        $(this).animate({'bottom': '-40px'}, 1000);
    } 

});

ただし、divがページの上、左、または右に配置されている場合、それは完全に正常に機能しますか? それは私が理解していないことです...しかし、私は言わなければなりません、私はJsにかなり慣れていません。

ここでjsFiddleをセットアップしました... http://jsfiddle.net/JmLqp/438/

助言がありますか?

ありがとう、B

4

2 に答える 2

0

から適切な値を取得していないようです$(this).offset().bottom。代わりにこれを行うことができます:

var status = "up"
$("#menu").click(function () {
    if(status == "up") {   
       status = "down"
        $(this).animate({'bottom': '100px'}, 1000);
    }
    else {
        $(this).animate({'bottom': '-30px'}, 1000);
         status = "down"
    } 

});
于 2013-08-08T22:09:39.240 に答える
0

div のbottom値をチェックし、そこからアニメーション化するように JS を変更しました。フィドル

$("#menu").click(function () {
    if($(this).css('bottom') == '-40px') {
        $(this).animate({'bottom': '0px'}, 1000);
    }
    else {
        $(this).animate({'bottom': '-40px'}, 1000);
   }     
});
于 2013-08-08T22:07:44.920 に答える