在我的 Firefox 自动更新到 FF17、MAC、OSX 10.8.2 后,我发现了这个问题。
有什么建议和技巧吗?
问题:
我使用 javascript preventDefault(); 和停止传播();通过鼠标滚轮取消默认滚动事件,它工作正常。但是当鼠标悬停在 flash 对象上并通过鼠标滚轮滚动时,这是行不通的。
事实上,我有一个可以通过鼠标滚轮控制的闪光灯面板。flash 对象嵌入在 html 文档的中间,您需要在浏览器中向下滚动才能查看 flash 内容。当我专注于 Flash 内容并通过鼠标滚轮滚动时,浏览器也在滚动并使 Flash 内容看不见。
重现问题:
1.在html的最底部放置一个简单的空白flash对象。确保您需要向下滚动才能在浏览器中查看 flash 对象。
为了便于解释,您可以使用此 javascript 来停止页面上的所有鼠标滚轮活动:(如果需要,请按“空格键”到达 html 最底部的 flash 对象)
window.addEventListener('DOMMouseScroll', wheel, false); window.addEventListener('mousewheel', wheel, false);
window.addEventListener('MozMousePixelScroll', wheel, false); window.addEventListener('wheel', wheel, false);
函数取消事件(e){ e = e ?e:窗口.事件;if (e.stopPropagation)e.stopPropagation(); if (e.preventDefault)e.preventDefault(); e.cancelBubble =真;e.取消=真;e.returnValue = 假;返回假;}将鼠标悬停在 flash 对象上并使用滚轮,您会发现浏览器也在滚动。
预期结果:
鼠标滚轮只控制 flash 对象,而不是通过上述脚本控制浏览器。