CSS pointer-events = 'none' и / или XUL mousethrough = 'Always' на веб-страницах для Firefox - PullRequest
11 голосов
/ 17 ноября 2009

Совсем недавно я задал этот вопрос о том, как передавать клики через элемент (например, наложение на весь экран). Получил несколько полезных советов, но я все еще задавался вопросом, какие браузеры изначально поддерживают это ...

Для тех, кто пропустил предыдущую ссылку, наложение чисто косметическое, должно быть наложено и должно игнорировать щелчки (все события мыши должны проходить через него) ...

Пока что мне удалось заставить это работать только с браузерами WebKit.

Работы (Chrome и Safari 4): -
<image src='./images/75/75.overlay.blood.png' width='100%' height='100%' style='z-index: 3; position: absolute; top: 0; left: 0; <strong>pointer-events: none;</strong>' />

Известно, что Firefox поддерживает события указателя с SVG (и с другими HTML-элементами в 3.6 ); проблема в том, что я не могу заставить это работать с SVG (например, xlink:href="overlay.24bit.8alpha.png").

Еще один способ, которым я надеялся достичь этого, - использовать XUL в HTML .

Я надеюсь использовать атрибут mousethrough="always" на оверлее (<image> и т. Д.). Пока не работает ...

Как ни странно, Internet Explorer рассматривает прозрачные области PNG с прозрачностью альфа-канала как "щелчок", что очень удобно.

Любые другие хорошие (или простые, но хакерские) способы добиться этого в Firefox (3+). Обдумал Flash-оверлей с wmode="transparent" (сбой).

1 Ответ

3 голосов
/ 10 сентября 2011

Попробуйте это решение jQuery: http://jsbin.com/uhuto

Работает как минимум в Firefox, Chrome, iPad Safari и IE8. Единственная проблема, которую я видел, заключалась в том, что оверлей не был полупрозрачным в IE, но я предполагаю, что это то, что можно преодолеть.

Другое решение (используется плагином Ext JS): http://www.vinylfox.com/forwarding-mouse-events-through-layers/ - использует Javascript для переадресации событий.

...