例如,这样做:
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()
,您正在设置在一秒钟内发生的事情。在您发布的代码中,您将left
属性设置为0px
在实例化效果之后,而不是在效果完成之后。afterFinish
为此目的有一个回调。您可以在此处查看 Scriptaculous 效果的其他可用回调。
顺便说一句 - 这个问题不是原型或 Scriptaculous 特定的,而是 Javascript 中异步操作的工作方式。