1

たとえば、次のようにします。

new Effect.Move('agrupador', { x: -100, y: 0, mode: 'relative' });
Element.setStyle('agrupador', {left: '0px' });

要素が左に移動する前に左の位置が適用されますが、反対が必要です。

これを行う方法はありますか?

PD: 試作品を燃やします、約束します。

4

1 に答える 1

2

ここにフィドルがあります:

http://jsfiddle.net/uF9Dh/

new Effect.Move('agrupador', {
    x: -100,
    y: 0,
    mode: 'relative',
    afterFinish: function() {
        Element.setStyle('agrupador', {left: '0px' });
    }
});
​

移動効果は非同期です。を呼び出すとnew Effect.Move()、1 秒間に何かが発生するように設定されます。投稿したコードでは、効果が終了した後ではなく、効果をインスタンス化した後にleftプロパティを設定します。この目的のためのコールバックがあります。Scriptaculous エフェクトで利用可能なその他のコールバックは、こちらで確認できます。0pxafterFinish

ところで - この問題は Prototype や Scriptaculous に固有のものではなく、Javascript での非同期アクションの動作に問題がありました。

于 2012-07-21T06:58:29.040 に答える