たとえば、次のようにします。
new Effect.Move('agrupador', { x: -100, y: 0, mode: 'relative' });
Element.setStyle('agrupador', {left: '0px' });
要素が左に移動する前に左の位置が適用されますが、反対が必要です。
これを行う方法はありますか?
PD: 試作品を燃やします、約束します。
たとえば、次のようにします。
new Effect.Move('agrupador', { x: -100, y: 0, mode: 'relative' });
Element.setStyle('agrupador', {left: '0px' });
要素が左に移動する前に左の位置が適用されますが、反対が必要です。
これを行う方法はありますか?
PD: 試作品を燃やします、約束します。
ここにフィドルがあります:
new Effect.Move('agrupador', {
x: -100,
y: 0,
mode: 'relative',
afterFinish: function() {
Element.setStyle('agrupador', {left: '0px' });
}
});
移動効果は非同期です。を呼び出すとnew Effect.Move()
、1 秒間に何かが発生するように設定されます。投稿したコードでは、効果が終了した後ではなく、効果をインスタンス化した後にleft
プロパティを設定します。この目的のためのコールバックがあります。Scriptaculous エフェクトで利用可能なその他のコールバックは、こちらで確認できます。0px
afterFinish
ところで - この問題は Prototype や Scriptaculous に固有のものではなく、Javascript での非同期アクションの動作に問題がありました。