Mootools Fx.Scroll()给错误/延迟div.getScroll()

时间:2013-06-17 08:43:19

标签: javascript mootools

我正在使用Mootools 1.3.2进行FX.Scroll()并在Fx.Scroll命令之后直接创建console.log()

问:为什么div.getScroll()没有得到“after-Fx.Scroll()”值?而是Fx.Scroll()之前的值?

jsfiddle example here

1 个答案:

答案 0 :(得分:2)

这是基于事件的编程。 Fx.Scroll是Fx的一个实例,当任何动画/补间完成时,它将触发oncomplete事件。您当前正在点击时输出,而不是在补间完成后输出。因为它不是CSS3转换,所以该属性不会被设置为str然后由css ui线程进行插值 - 它实际上是在setTimeout中逐点移动它(因此与当前执行范围/线程分离)。

http://jsfiddle.net/2WuSw/1/

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);
});