2

私が持っていたこのコードは機能すると思っていましたが、50% しか機能しませんでした。幅を 0 から 200px にアニメートする場合は機能しますが、その逆の場合は機能しません。

これは機能します:$('#left').animate({"width": "200px"}, "1000").show();

しかし、これはしません:$('#left').animate({"width": "0px"}, "1000").hide();

私は何を間違っていますか?

すべてのコードを含む JSFIDDLE を次に示します。

4

1 に答える 1

1

アニメーションが完了したら非表示にします。

$('#left').animate({"width": "0px"}, "1000", function () {
    $(this).hide();
});

その理由は、animateが非同期で起動し、すぐにhideが呼び出されて、それが消えてしまうためです。それを完全なコールバックに入れると、望ましい効果が得られます。

更新されたフィドルを参照してください:http://jsfiddle.net/nV5Tu/12/

于 2013-01-23T18:04:22.013 に答える