我的firefox自动更新到FF17,MAC,OSX 10.8.2后发现此问题。
有什么建议和提示吗?
问题:
我用javascript preventDefault();和stopPropagation();要通过鼠标滚轮取消默认滚动事件,它可以正常工作。
但是当鼠标悬停在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);
功能cancelEvent(e)
{
e = e? e:window.event;
if(e.stopPropagation)e.stopPropagation();
if(e.preventDefault)e.preventDefault();
e.cancelBubble = true;
e.cancel = true;
e.returnValue = false;
返回false;
}
鼠标在flash对象上滚动并使用滚轮,您会发现浏览器也在滚动。
预期结果:
鼠标滚轮仅控制flash对象,但不能通过上述脚本控制浏览器。
答案 0 :(得分:1)
我遇到过一个网站,其中有一个flash对象中的整个订单处理,但该对象是固定大小,不适合我的笔记本电脑屏幕。他们禁止在flash对象对象内外滚动,即整个页面。绝对令人愤怒的用户体验,我必须将鼠标指针移动到最右边,并使用浏览器滚动条而不是鼠标滚轮。此网站“https://internetorder.dominos.com.au/estore/”(通过主页的任何页面)的行为是否与您相同,如果是这样,它可能会为您提供一种方式让您对用户造成冲击。不是说我以任何方式赞同这一点。
答案 1 :(得分:0)
你需要使用javascript来覆盖默认的鼠标滚轮行为。 第一个链接在不同的浏览器中有很多例子,但基于第二个例子我在现代IE中的实现更好运。
http://www.stoimen.com/blog/2009/07/01/javascript-disable-mouse-wheel/
http://solidlystated.com/scripting/javascript-disable-mouse-wheel/
但我不确定你为什么需要这个。如果你使flash应用程序与屏幕大小相同并缩放内部内容,则无法滚动页面。只需将闪光灯的宽度和高度设置为100%
答案 2 :(得分:0)
我创建了一个小型lib,可以为您处理所有事情。它在默认的flash播放器插件,Pepper闪存和MAC-OS上运行完美(据我测试)。而且您不需要将任何.js文件添加到HTML文件夹