У меня есть веб-страница с прокручиваемым div на ней. В верхней части прокручиваемого div у меня есть абсолютно позиционированный div, который перекрывает половину прокручиваемого div.
Когда я накладываю курсор мыши на прокручиваемый div, я могу прокрутить его с помощью колеса мыши. Но когда я перемещаю курсор над перекрывающимся div, тогда колесо мыши останавливает прокрутку этого div (и это правильное поведение, потому что абсолютный позиционированный div не находится внутри прокручиваемого div).
Вопрос:, как передать или отправить событие прокрутки, полученное абсолютным позиционированным div, в этот прокручиваемый div, чтобы сделать это абсолютным позиционированием div "прозрачным" для событий колесика мыши.
Я мог бы заставить его работать в Chrome, но не в IE и Firefox. Как переписать этот код, чтобы заставить его работать в IE и Firefox?
if ($.browser.webkit) {
$(".overlap-container").bind("mousewheel", function (e) {
var origEvent = e.originalEvent;
var evt = document.createEvent("WheelEvent");
evt.initWebKitWheelEvent(
origEvent.wheelDeltaX,
origEvent.wheelDeltaY,
window,
0,
0,
0,
0,
origEvent.ctrlKey,
origEvent.altKey,
origEvent.shiftKey,
origEvent.metaKey);
$(".scroll-container").get(0).dispatchEvent(evt);
});
}
См. пример здесь: http://jsfiddle.net/HAc4K/5
EDITED: Эта проблема изначально связана с jqGrid - замороженные столбцы не реагируют на прокрутку колесика мыши.
В Chrome и Firefox поддерживается свойство awesome CSS: pointer-events:none