我正在使用Mootools 1.3.2进行FX.Scroll()
并在Fx.Scroll命令之后直接创建console.log()
。
问:为什么div.getScroll()
没有得到“after-Fx.Scroll()”值?而是Fx.Scroll()
之前的值?
答案 0 :(得分:2)
这是基于事件的编程。 Fx.Scroll是Fx的一个实例,当任何动画/补间完成时,它将触发oncomplete
事件。您当前正在点击时输出,而不是在补间完成后输出。因为它不是CSS3转换,所以该属性不会被设置为str然后由css ui线程进行插值 - 它实际上是在setTimeout中逐点移动它(因此与当前执行范围/线程分离)。
scrollEff = new Fx.Scroll(spinAreaDiv, {
wait: false,
duration: 1000,
offset: {
'x': 0,
'y': 0
},
transition: Fx.Transitions.Quad.easeInOut,
onComplete: function(){
console.log(this.element.getScroll().x);
}
});
如上所示,我传递了一个onComplete事件处理程序。
你也可以稍后再绑定。
// or use `complete:once`
scrollEff.addEvent('complete', function(){
console.log(this.element.getScroll().x);
});