最初に再生したときは問題なく動作する単純な「スライド」アニメーションを作成しましたが、2 回目以降は同じ効果が得られません (div が互いに押し合っているように見えるはずですが、前後に移動すると2 番目に進むアニメーションは失われます)。
おそらく、2行目で指定している「左」の位置が原因であることに気付きました。アニメーションが最初に読み込まれるとき、div には左の値がなく、再生されると値は 0 になります。しかし、ここで解決方法がわからず、壁にぶつかります。多分スクリプトを殺しますか?これは私の知る限りですが、「スクリプトによって指定されたすべての値を消去する」ようなものがあるかどうかはわかりません。これが理にかなっていることを願っています...
ここに jsFiddleがあり、これが私のコードです:
$('a.settingsTitle.settingsTitleTask').click(function () {
$("#settingsPortal").animate({'left': '0px','width': '0%'}, 300, function() {
$(this).addClass('displayNone');
$("#settingsTask").removeClass('displayNone').animate({'left': '0px','width': '100%'}, 300);
});
});
$('a.settingsTitle.settingsTitleBack').click(function () {
$("#settingsTask").animate({'left': '610px','width': '0%'}, 300, function() {
$(this).addClass('displayNone');
$("#settingsPortal").removeClass('displayNone').animate({'left': '0px','width': '100%'}, 300);
});
});