我在jQuery中有一个鼠标滚轮功能绑定到控制滑块的窗口元素。
现在,我还有一个可滚动的ul
项目,在滚动时,我也不想更改滑块。
我可以将window.bind
函数与$(this)
函数结合使用,以便在ul
中滚动时不更改滑块吗?
以下是滚动条中滑块更改的代码
$(window).bind('mousewheel', function(e) {
if(e.originalEvent.wheelDelta / 120 > 0) {
//INCREASE SLIDER ON SCROLL UP
} else {
//DECREASE SLIDER ON SCROLL UP
}
});
在我增加滑块或减小滑块时,我想检查是否在ul
元素中调用了此鼠标滚轮动作。如果是,则滑块不应更改。
答案 0 :(得分:1)
我会这样做以使其跨浏览器:
if (document.addEventListener) {
document.addEventListener("mousewheel", MouseWheelHandler, false); //IE9, Chrome, Safari, Oper
document.addEventListener("wheel", MouseWheelHandler, false); //Firefox
} else {
document.attachEvent("onmousewheel", MouseWheelHandler); //IE 6/7/8
}
function MouseWheelHandler(){
e = window.event || e;
var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.deltaY || -e.detail)));
//scrolling down?
if (delta < 0) {
}
//scrolling up?
else {
}
}
答案 1 :(得分:0)
如果我理解你的问题,请使用:
$(window).bind('mousewheel', function(e) {
if($(e.target).closest('ul').length) return;
if(e.originalEvent.wheelDelta / 120 > 0) {
//INCREASE SLIDER ON SCROLL UP
} else {
//DECREASE SLIDER ON SCROLL UP
}
});