2017-06-19 41 views
1

當光標位於具有較高z-index的另一個元素上時,有什麼辦法可以在容器上啓用鼠標滾輪嗎?這裏是例子:https://jsfiddle.net/dkdghj7r/z-index較高的元素滑輪

$('div').on('mousewheel', function(event) { 
 
    event.preventDefault(); 
 
    console.log('Scroll!') 
 
})
div { 
 
    background: yellow; 
 
    height: 300px; 
 
    width: 500px; 
 
} 
 

 
span { 
 
    background-color: red; 
 
    display: block; 
 
    height: 100px; 
 
    left: 200px; 
 
    position: fixed; 
 
    top: 100px; 
 
    width: 100px; 
 
    z-index: 10; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div></div> 
 

 
<span></span>

+0

只有將具有較高'z-index'的元素放置在具有較低元素的元素內。 – user13286

回答

0

如何計算由框中的網頁上所佔的面積,讓鼠標的頁面X/Y,並檢查是否鼠標框的區域內:

$(document).on('wheel', function() { 
    var offset = $('div').offset(); 
    var width = $('div').width(); 
    var height = $('div').height(); 

    if (lastEvent.pageX > offset.left && lastEvent.pageX < offset.left + width 
     && lastEvent.pageY > offset.top && lastEvent.pageY < offset.top + height) { 
    console.log('Scolled inside yellow box!'); 
    } 
}); 

var lastEvent = { 
    pageX: -1, 
    pageY: -1 
}; 

$(document).on('mousemove', function(event) { 
    lastEvent = { 
    pageX: event.pageX, 
    pageY: event.pageY 
    }; 
}); 

https://jsfiddle.net/37d9z411/

+1

只是一個說明,修改你的小提琴使用'wheel'事件而不是'mousewheel'。 'wheel'是標準事件:https://developer.mozilla.org/en-US/docs/Web/Events/mousewheel – PaulBGD

+0

可惜這個解決方案太複雜了。但是,謝謝,我不知道'wheel'事件,所以我必須爲Firefox使用'mousewheel'和'DOMMouseScroll'。 :-) – Vesmy