Mootools覆盖窗口滚动

时间:2013-12-17 10:51:57

标签: javascript events scroll mootools

我知道这是一个坏主意,但这是客户要求的......

我正在使用mootools覆盖窗口鼠标滚轮滚动事件,因此基本上当用户滚动滚轮时我会阻止默认操作,然后使用变形滚动窗口。

问题是wheel事件上的preventDefault()似乎仍然会中断窗口滚动的变形。因此窗口开始动画到底部,但如果你使用轮子,这就会发生停止变形。

有解决方法吗?我已经看到其他网站似乎让这个工作。

window.addEvent('mousewheel', function(e){
    e.preventDefault();
    scroll.toBottom();
})

1 个答案:

答案 0 :(得分:0)

Mootools FX.scroll()实际上有一个鼠标选项,它说:

  

wheelStops - (布尔值:默认为true )如果为false,则鼠标滚轮不会停止发生转换。

我做了一个演示,它工作正常。我有第一个想法使用Core Fx的方法.isRunning(),但仅此一点没有完成工作。

实际上,有点令人惊讶,我使用两者都获得了最流畅的效果。当wheelStops到false时,isRunning()会在控制台上登录,但如果是true(默认值),则会记录未定义。

var scroll = new Fx.Scroll('theElementsID', {
    duration: 'long',
    wheelStops: false
});

window.addEvent('mousewheel', function (e) {
    var isRunning = scroll.isRunning();
    if (scroll.isRunning()) e.preventDefault();
    scroll.toBottom();

})

Demo