2013-01-04 122 views
4

我发现这个问题后,我的Firefox自动更新到FF17,MAC,OSX 10.8.2。
任何建议和提示?仅通过鼠标滚轮在闪光灯中滚动。防止默认浏览器通过滚轮滚动

问题:
我使用JavaScript的preventDefault();和stopPropagation();通过鼠标滚轮取消默认滚动事件,它工作正常。 但是,当鼠标移动到闪光灯对象上并通过鼠标滚轮滚动时,这不起作用。

事实上,我有一个可以通过鼠标滚轮控制的闪存面板。 flash对象被嵌入在html文档的中间, 您需要在浏览器中向下滚动以查看Flash内容。当我专注于Flash内容并通过鼠标滚轮浏览时,浏览器也在滚动并使Flash内容不可见。

重现该问题:
1.将在HTML最底部一个简单的空白Flash对象。确保您需要向下滚动浏览器中的Flash对象。

  1. 为了便于解释,你可以使用这个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:window.event; (e.stopPropagation)e.stopPropagation(); if(e.preventDefault)e.preventDefault(); e.cancelBubble = true; e.cancel = true; e.returnValue = false; 返回false; }

  2. 鼠标在闪光物体上滚动并使用滚轮,您会发现浏览器也在滚动。

预期结果:
鼠标滚轮只控制flash对象,而不是由上面的脚本浏览器。

+0

你找到任何解决方案? –

+0

@MuratÇorlunope ....我向Mozilla报告为一个错误,但当时没有回复。 –

回答

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%

+0

感谢您的回复。但是Firefox 17中仍然存在一些问题。 –

+0

我的Flash对象将嵌入到第三方网站中,并且Flash对象的大小需要适合所提供的外观。 –

1

我遇到了一个网站,其中有一个Flash对象中的整个订单流程,但该对象的尺寸不适合我的笔记本电脑屏幕。他们已禁用在Flash对象内部和外部滚动,即整个页面。绝对令人愤慨的用户体验,我必须将鼠标指针移动到最右边,并使用浏览器滚动条代替鼠标滚轮。这个网站“https://internetorder.dominos.com.au/estore/”(任何主页上的页面)对你来说都是如此,如果是这样的话,它可能为你提供一种方式让你的用户使用它。并非我以任何方式认可这一点。

+0

更新:我之前的评论中引用的网站已替换Flash,不再相关。 –

0

我创建了一个小的库,为您处理所有事情。它在默认的Flash播放器插件,Pepper Flash和MAC-OS上完美(就我测试而言)。而你并不需要任何.js文件添加到您的HTML文件夹

GIhub repo