0

最初に再生したときは問題なく動作する単純な「スライド」アニメーションを作成しましたが、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);
    });         
});
4

1 に答える 1

3

JavaScript では CSS スタイルがstyle属性に適用されるため、元の状態に戻すには次のようにします。

$element.removeAttr('style')
于 2012-08-03T02:08:22.117 に答える