Maison > Questions et réponses > le corps du texte
Mon premier objet est un objet de classe "chien-lettre". Il comporte deux objets de classe « chien » et « lettre ». J'ai réussi à le faire disparaître au survol. Mon deuxième objet est un cercle noir avec une classe "nez de chien". Mais je ne peux pas cliquer sur cet objet après son apparition.
Mise à jour
Après avoir utilisé z-index:1
le premier objet donne de la cohérence mais je n'arrive toujours pas à cliquer sur le deuxième objet à chaque fois.
Si je déplace un peu le curseur, je ne peux pas cliquer.
.dog-letter-box { border-top: 1px solid #555; border-bottom: 2px solid #000000; height: 250px; width: 100%; background: #FEEEEB; display: grid; grid-template-columns: 1fr 1fr 1fr 1fr 1fr; grid-template-rows: 1fr 1fr; } .dog-letter { z-index:1; margin: 6% auto; width: 50px; height: 150px; background: #00EFFE; animation-duration: 0.75s; animation-iteration-count: 1; animation-fill-mode: forwards; transform-origin: 50% 40%; grid-column-start: 3; grid-column-end: 4; grid-row-start: 1; } .dog { width: 50px; height: 50px; clip-path: circle(40%); background: #FFB6C1; } .letter { width: 50px; height: 100px; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); background: #FF46C1; } .dog-letter:hover + .dog-nose { animation-duration: 0.75s; animation-iteration-count: 1; animation-fill-mode: forwards; animation-name: show-up; animation-timing-function: ease; } .dog-nose { margin:10px auto; width: 70px; height: 70px; background: #AFE1AF; grid-column-start: 3; grid-column-end: 4; grid-row-start: 1; opacity: 0; } .bounce:hover { animation-name: bounce-up; animation-timing-function: ease; } @keyframes bounce-up { 0% { transform: translateY(0) scaleY(1) rotateY(0); opacity: 1; } 100% { transform: translateY(-15px) scaleY(0.2) rotateY(540deg); opacity: 0; } } @keyframes show-up { 0% {opacity: 0;} 100% {opacity: 1;} }
<div class="dog-letter-box"> <div class="dog-letter bounce"> <div class="dog">55</div> <div class="letter">66</div> </div> <a class="dog-nose" href='http://www.google.com'> <svg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"> <circle cx="10" cy="10" r="10"/> </svg> </a> </div>
P粉4251197392024-04-02 11:42:40
Votre code repose sur le survol de .dog-letter , ce qui n'est pas bon, vous pouvez exécuter des animations en survolant la boîte les contenant (.dog-letter, .dog-nose). J'utilise .dog-letter-box, vous pouvez ajouter un nouveau div et y mettre .dog-letter, .dog-nose.
De plus, j'utilise pointer-events:none pour la lettre du chien après le survol, où le nez du chien peut être survolé et le lien cliqué.
.dog-letter-box { border-top: 1px solid #555; border-bottom: 2px solid #000000; height: 250px; width: 100%; background: #FEEEEB; display: grid; grid-template-columns: 1fr 1fr 1fr 1fr 1fr; grid-template-rows: 1fr 1fr; } .dog-letter { z-index:1; margin: 6% auto; width: 50px; height: 150px; background: #00EFFE; animation-duration: 0.75s; animation-iteration-count: 1; animation-fill-mode: forwards; transform-origin: 50% 40%; grid-column-start: 3; grid-column-end: 4; grid-row-start: 1; } .dog { width: 50px; height: 50px; clip-path: circle(40%); background: #FFB6C1; } .letter { width: 50px; height: 100px; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); background: #FF46C1; } .dog-letter-box:hover .dog-nose { animation-duration: 0.75s; animation-iteration-count: 1; animation-fill-mode: forwards; animation-name: show-up; animation-timing-function: ease; } .dog-nose { margin:10px auto; width: 70px; height: 70px; background: #AFE1AF; grid-column-start: 3; grid-column-end: 4; grid-row-start: 1; opacity: 0; } .dog-letter-box:hover .bounce { animation-name: bounce-up; animation-timing-function: ease; pointer-events: none; } @keyframes bounce-up { 0% { transform: translateY(0) scaleY(1) rotateY(0); opacity: 1; } 100% { transform: translateY(-15px) scaleY(0.2) rotateY(540deg); opacity: 0; } } @keyframes show-up { 0% {opacity: 0;} 100% {opacity: 1;} }