Je viens de jouer avec la pointer-events
propriété en CSS.
J'ai un div
que je veux être invisible à tous les événements de souris, sauf pour :hover
.
Ainsi, toutes les commandes de clic passent par le div
à celui en dessous, mais le div peut indiquer si la souris est au-dessus ou pas encore.
Quelqu'un peut-il me dire si cela peut être fait?
HTML:
<div class="layer" style="z-index:20; pointer-events:none;">Top layer</div>
<div class="layer" style="z-index:10;">Bottom layer</div>
CSS:
.layer {
position:absolute;
top:0px;
left:0px;
height:400px;
width:400px;
}
html
css
pointer-events
Jimmery
la source
la source
pointer-events
pas bien pris en charge dans IE .Réponses:
Je ne pense pas qu'il soit possible d'atteindre vos objectifs uniquement en CSS. Cependant, comme d'autres contributeurs l'ont mentionné, c'est assez facile à faire dans JQuery. Voici comment je l'ai fait:
HTML
CSS (inchangé)
JQuery
Voici le JSFiddle: http://www.jsfiddle.net/ReZ9M
la source
Survolez uniquement. C'est très facile. Pas de JS ... Empêche également l'action par défaut du lien.
Edit: pris en charge dans IE 11 et au-dessus http://caniuse.com/#search=pointer-events
la source
"Voler" la réponse de Xanco mais sans ce jQuery laid et laid.
Snippet : Notez que les DIV sont dans l'ordre inverse
la source
Vous pouvez également détecter le survol sur différents éléments et appliquer des styles à son enfant, ou en utilisant d'autres sélecteurs css comme les enfants adjacents, etc.
Cela dépend cependant de votre cas.
Au survol de l'élément parent. J'ai fait ça:
la source
J'utilise le
:hover
pseudo-élément d'un parent / conteneur de taille égale pour simuler un survol sur mon div de superposition, puis définissez la superpositionpointer-events
surnone
pour transmettre les clics aux éléments ci-dessous.Afficher l'extrait de code
la source
Solution CSS pure à votre demande (la propriété opacity est là juste pour illustrer le besoin des transitions):
Ce qu'il fait:
Lorsque la souris entre dans la boîte, elle déclenche l'
:hover
état. Cependant, dans cet état, les événements de pointeur sont désactivés.Mais si vous ne définissez pas les minuteries des transitions, le div annulera l'état de survol lorsque la souris se déplace; l'état de survol clignotera pendant que la souris se déplace à l'intérieur de l'élément. Vous pouvez le percevoir en utilisant le code ci-dessus avec les propriétés d'opacité.
La définition d'un délai pour la transition hors de l'état de survol le résout. La
2s
valeur peut être modifiée en fonction de vos besoins.Crédits aux transitions tweak: patad sur cette réponse .
la source
Juste du css pur , n'a pas besoin de jquery :
la source