0

我正在FX.Scroll()使用 Mootools 1.3.2 并console.log()在 Fx.Scroll 命令之后直接制作。

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

这里是jsfiddle示例

4

1 回答 1

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);
});
于 2013-06-17T10:44:45.753 回答