【问题标题】:Mootools overriding window scrollMootools 覆盖窗口滚动
【发布时间】:2013-12-17 10:51:57
【问题描述】:

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

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

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

有没有办法解决这个问题?我见过其他网站似乎可以让这个工作。

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

【问题讨论】:

    标签: javascript events scroll mootools


    【解决方案1】:

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

    wheelStops -(boolean:默认为 true)如果为 false,则鼠标滚轮不会停止过渡。

    我用它做了一个演示,效果很好。我的第一个想法是使用 Core Fx 的方法.isRunning(),但仅此一项并没有成功。

    实际上,有点令人惊讶的是,我使用这两种方法获得了最平滑的效果。当 wheelStops 到 false 时,isRunning() 会在控制台上登录,但如果是 true(默认),则会记录 undefined。

    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

    【讨论】:

    • 您好,感谢您的回复。如果您在动画向下滚动时继续滚动,它仍然会为我摇晃,有没有办法阻止它,您知道吗?基本上我正在尝试获得这种效果jawbone.com/speakers/jambox 但是当动画发生在我身上时,使用 mootools 时,它会震动滚动,因为它没有正确地阻止它看起来的事件谢谢
    • @user3110793 你用什么浏览器?
    • 我正在使用 chrome。我给出的示例网站在 chrome 中工作。我认为他们正在使用 jquery,但您会认为 mootools 仍然可以。就好像 e.preventDefault() 无法正常工作一样它会抵消变形。谢谢
    • 天哪,对不起,我做了一些非常愚蠢的事情,我忘了装轮挡。感谢您的所有帮助。
    猜你喜欢
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 2015-12-15
    相关资源
    最近更新 更多