2014-11-06 80 views
0

我有以下http://jsfiddle.net/o0krp0yf/基本上,如果我用鼠標滾輪滾動,停止它(我想滾動幻燈片)。但我的問題是,如果我有一個正常的滾動行爲的元素,我無法滾動該元素(請參閱.scroll)。Javascript mousewheel event scroll

有無論如何檢測一個元素(遊標結束,即我想滾動該元素)是可滾動還是滾動條,如果它是我想正常滾動該元素。

基本上我想讓我的普通方法完美地工作,除非我試圖滾動.scroll元素。

回答

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/

您可能要添加檢查以查看內部滾動元素是否已經完成滾動(否則,滾動事件將繼續到父母,這是不期望的...)

0

只需從您的腳本中刪除event.preventDefault();。默認情況下,滾動條的任何元素都將自然滾動。除了滾動以外,如果帶滾動條的元素還想做其他事情嗎?

+0

我無法刪除它我需要它。閱讀原文。 – Steven 2014-11-06 02:13:51