4

在我的 Firefox 自动更新到 FF17、MAC、OSX 10.8.2 后,我发现了这个问题。
有什么建议和技巧吗?

问题:
我使用 javascript preventDefault(); 和停止传播();通过鼠标滚轮取消默认滚动事件,它工作正常。但是当鼠标悬停在 flash 对象上并通过鼠标滚轮滚动时,这是行不通的。

事实上,我有一个可以通过鼠标滚轮控制的闪光灯面板。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:窗口.事件;if (e.stopPropagation)e.stopPropagation(); if (e.preventDefault)e.preventDefault(); e.cancelBubble =真;e.取消=真;e.returnValue = 假;返回假;}

  2. 将鼠标悬停在 flash 对象上并使用滚轮,您会发现浏览器也在滚动。

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

4

3 回答 3

1

我遇到了一个网站,该网站在 Flash 对象中包含整个订单流程,但该对象的大小固定,不适合我的笔记本电脑屏幕。他们禁用了 Flash 对象对象(即整个页面)内外的滚动。绝对令人恼火的用户体验,我必须将鼠标指针移到最右边并使用浏览器滚动条而不是鼠标滚轮。该站点“ https://internetorder.dominos.com.au/estore/ ”(主页之后的任何页面)是否对您表现如此,如果是这样,它可能会为您提供一种将其强加给您的用户的方式。并不是说我以任何方式支持这一点。

于 2013-05-12T16:53:40.683 回答
0

我创建了一个小库来为你处理一切。它在默认的 Flash 播放器插件、Pepper Flash 和 MAC-OS 上运行完美(据我测试)。而且您不需要将任何 .js 文件添加到您的 HTML 文件夹中

GIhub 仓库

于 2013-07-29T08:09:42.093 回答
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%

于 2013-01-04T21:21:59.723 回答