Aus verschiedenen Gründen muss ich einen (meistens) transparenten <div>
Text einfügen. Dies bedeutet jedoch, dass auf den Text nicht geklickt werden kann (z. B. um auf Links zu klicken oder ihn auszuwählen). Wäre es möglich, dieses Div für Klicks und andere Mausereignisse einfach "unsichtbar" zu machen?
Zum Beispiel overlay
deckt das Div-Cover den Text ab, aber ich möchte in der Lage sein, den Text über das overlay
Div anzuklicken / auszuwählen :
<div id="container">
<p>Some text</p>
<div id="overlay" style="position: absolute; top: 0;
left: 0; width: 100%; height:100%">
... some content ...
</div>
</div>
Antworten:
Dies kann mit CSS erfolgen
pointer-events
. Diese Eigenschaft wird in Firefox 3.6+, Chrome 2+, IE 11+ und Safari 4+ unterstützt. Leider kenne ich keine browserübergreifende Problemumgehung.quelle
pointer-events: visible
Sieht so aus, als würde es genau das tun , was ich will. Vielen Dank!Dies kann durch erneutes Auslösen des Ereignisses erfolgen, nachdem Sie die Überlagerung vorübergehend ausgeblendet haben.
Siehe die erste Antwort auf diese Frage: HTML "Overlay", mit dem Klicks auf Elemente dahinter fallen können
quelle
Sie können dies tun, indem Sie das Overlay wie folgt ausblenden:
quelle
Verwenden Sie diese jQuery
Ersetzen Sie "div" durch die ID oder das Element
quelle
Eine Alternative zum Deaktivieren aller Ereignisse (oder Chicks) auf einem Div ist das Aufheben () aller Ereignisse, die standardmäßig mit Tags verbunden sind
oder
quelle
jquery
Jetzt verwendetoff()
zugunstenunbind()
und entfernt nur die Handler, verhindert nicht, dass das div den Klick erfasst.