Javascript鼠标滚轮事件滚动

时间:2014-11-06 01:31:43

标签: javascript jquery

我基本上有以下http://jsfiddle.net/o0krp0yf/如果我用鼠标滚轮滚动,停止它(我想滚动幻灯片)。但我的问题是,如果我有一个具有正常滚动行为的元素,我无法滚动该元素(请参阅.scroll)。

无论如何检测一个元素(光标已经结束,即我想滚动该元素)是否可滚动或有滚动条,如果是,我想正常滚动该元素。

基本上我想让我的普通方法完美地工作,除非我试图滚动.scroll元素。

2 个答案:

答案 0 :(得分:0)

只需从脚本中删除event.preventDefault();即可。默认情况下,任何带滚动条的元素都会自然滚动。除了滚动之外,当你想要在带滚动条的元素时做其他事吗?

答案 1 :(得分:0)

您可以在mouseover元素时设置标记。像这样:

var disableScroll = true;

$(document).on('mouseenter mouseleave', '.scroll', function(e) {
    disableScroll = (e.type == 'mouseleave');
});

然后检查滚动事件中的标志:

$('.page').on('mousewheel', function(event) {
    if (disableScroll) {
        event.preventDefault();    
    }
});

这是一个更新的小提琴:

http://jsfiddle.net/o0krp0yf/1/

您可能想要添加一个检查以查看内部滚动元素是否已完成滚动(否则,滚动事件将继续显示父项,这是不合适的...)