スクロール可能な div を含む Web ページがあります。スクロール可能な 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
編集:この問題はもともと jqGrid からのものです - フリーズした列はマウス ホイールのスクロールに反応しません。
Chrome と Firefox では、awesome CSS プロパティがサポートされています。pointer-events:none