11 Stimmen

CSS pointer-events='none' und/oder XUL mousethrough='always' in Webseiten für Firefox

Vor kurzem habe ich gefragt diese Frage wie man Klicks weitergibt über ein Element (z. B. Vollbildüberlagerung). Erhielt einige gute Ratschläge, aber ich fragte mich immer noch, welche Browser dies nativ unterstützt ...

Für diejenigen, die den vorherigen Link überlesen haben: Die Überlagerung ist rein kosmetisch, muss überlagert werden und sollte Klicks ignorieren (alle Mausereignisse sollten direkt durch sie hindurchgehen)...

Bislang ist es mir nur gelungen, dies mit WebKit-Browsern zum Laufen zu bringen.

Funktioniert (Chrome und 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 ist dafür bekannt, Zeiger-Ereignisse mit SVGs zu unterstützen (und mit andere HTML-Elemente in 3.6 ); das Problem ist, dass ich es nicht schaffe, dies mit einem SVG zu erreichen (z. B. xlink:href="overlay.24bit.8alpha.png" ).

Ich hatte gehofft, dass dies auch durch die Verwendung folgender Mittel erreicht werden könnte XUL in HTML .

Ich hoffe, dass ich das Attribut mousethrough="always" auf dem Overlay ( <image> , usw.). Funktioniert bisher noch nicht...

Seltsamerweise behandelt der Internet Explorer die transparenten Bereiche von PNGs mit Alpha-Opazität als "durchklickbar", was praktisch ist.

Irgendwelche anderen guten (oder einfachen aber hackky) Möglichkeiten, dies in Firefox (3+) zu erreichen. Ich dachte an ein Flash-Overlay mit wmode="transparent" (scheitern).

0 Stimmen

Was Firefox betrifft, scheint es, dass der SVG-Masken-Effekt die Arbeit erledigen könnte (Demo: - people.mozilla.org/~roc/mask.xhtml de weblogs.mozillazine.org/roc/archives/2008/06/ ) mit Seiten, die als .xhtml serviert (nun ja, benannt) werden. Kann ich PNGs als Masken verwenden (ich werde mein Overlay invertieren)?

1 Stimmen

Außerdem wird es in FF 3.6 unterstützt, das in Kürze veröffentlicht werden soll: developer.mozilla.org/de/CSS/pointer-events

0 Stimmen

Danke, Lithorus. Der SVG-Weg scheint die beste/einzige Option zu sein, die ich habe. Irgendwelche Gedanken?

3voto

Scott A Punkte 7467

Versuchen Sie diese jQuery-Lösung: http://jsbin.com/uhuto

Funktioniert zumindest in Firefox, Chrome, Safari auf dem iPad und IE8. Das einzige Problem, das ich gesehen habe, war, dass das Overlay nicht durchsichtig in IE war, aber ich nehme an, dass ist etwas, das überwunden werden kann.

Eine andere Lösung (verwendet von einem Ext JS-Plugin): http://www.vinylfox.com/forwarding-mouse-events-through-layers/ - verwendet Javascript, um die Ereignisse weiterzuleiten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X