2009-11-17 2 views
11

Molto recentemente ho chiesto this question su come passare i clic tramite un elemento (ad esempio sovrapposizione a schermo intero). Ricevuto qualche buon consiglio, ma ho ancora chiesto quale browser supportati in modo nativo ...pointer-events CSS = 'none' e/o XUL mousethrough = 'sempre' nelle pagine Web per Firefox

Per coloro che saltando il link precedente, la sovrapposizione è puramente cosmetico, deve essere sovrapposti e dovrebbe ignorare scatti (tutti gli eventi del mouse dovrebbero passare a destra attraverso di esso) ...

Finora, sono riuscito a farlo funzionare solo con i browser WebKit.

Works (Chrome e Safari 4): -
<image src='./images/75/75.overlay.blood.png' width='100%' height='100%' style='z-index: 3; position: absolute; top: 0; left: 0; pointer-events: none;' />

Firefox è noto per supportare puntatore-eventi con SVG (e con other HTML elements in 3.6); il problema è che non riesco a farlo funzionare con un SVG (ad esempio xlink:href="overlay.24bit.8alpha.png").

Un altro modo in cui speravo che questo potesse essere raggiunto era usando XUL in HTML.

Spero di utilizzare l'attributo mousethrough="always" sull'overlay (<image>, ecc.). Non ancora funzionante ...

Stranamente, Internet Explorer tratta le aree trasparenti di alpha opacity PNG come "click through" che è molto utile.

Qualsiasi altro modo buono (o semplice ma hackky) per ottenere questo in Firefox (3+). Rifletti una sovrapposizione Flash con wmode="transparent" (errore).

+0

Per quanto riguarda Firefox, sembra che l'effetto maschera SVG potrebbe fare il lavoro (demo: http://people.mozilla.org/~roc/mask.xhtml da http://weblogs.mozillazine.org/roc/archives /2008/06/applying_svg_ef.html) con pagine servite (beh, denominate) come .xhtml. Posso usare PNG come maschere (invertirò il mio overlay)? – LeslieOA

+1

Inoltre è supportato in FF 3.6 che deve essere rilasciato abbastanza presto: https://developer.mozilla.org/en/CSS/pointer-events – lithorus

+0

Grazie lithorus. La rotta SVG sembra essere la migliore/unica opzione che ho. qualche idea? – LeslieOA

risposta

3

provare questa soluzione jQuery: http://jsbin.com/uhuto

Lavori in Firefox, Chrome, Safari di iPad, e IE8 almeno. L'unico problema che ho riscontrato è che la sovrapposizione non era traslucida in IE, ma presumo che sia qualcosa che può essere superato.

Un'altra soluzione (utilizzata da un plug-in Ext JS): http://www.vinylfox.com/forwarding-mouse-events-through-layers/ - utilizza Javascript per reinventare gli eventi.