Pour diverses raisons, je dois mettre un (principalement) transparent <div>
sur certains textes. Cependant, cela signifie que le texte ne peut pas être cliqué (par exemple, pour cliquer sur des liens ou le sélectionner). Serait-il possible de simplement rendre ce div "invisible" aux clics et autres événements de souris?
Par exemple, le overlay
div couvre le texte, mais j'aimerais pouvoir cliquer / sélectionner le texte via le overlay
div:
<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>
Réponses:
Cela peut être fait en utilisant CSS
pointer-events
. Cette propriété est prise en charge dans Firefox 3.6+, Chrome 2+, IE 11+ et Safari 4+. Malheureusement, je n'ai pas connaissance d'une solution de contournement inter-navigateurs.la source
pointer-events: visible
on dirait qu'il fera exactement ce que je veux. Merci!Cela peut être fait en recréant l'événement après avoir masqué temporairement la superposition.
Voir la première réponse à cette question: "superposition" HTML qui permet aux clics de tomber sur les éléments derrière
la source
Vous pouvez le faire en masquant la superposition comme ceci:
la source
Utilisez ce jQuery
remplacer "div" par l'ID ou l'élément
la source
Une alternative pour désactiver tous les événements (ou poussin) sur un div est unbind () tous les événements qui sont attachés avec des balises par défaut
ou
la source
jquery
utilise désormaisoff()
en faveur deunbind()
, et supprime uniquement les gestionnaires, n'empêche pas le div de capturer le clic.