Cet article parle principalement de deux effets d'animation de soulignement. Le premier consiste à étendre l'axe X de l'intérieur vers l'extérieur lors du survol pour obtenir l'effet d'animation. pour afficher automatiquement la gauche et la droite, de gauche à droite ou de droite à gauche.
Le principal effet obtenu est d'utiliser des balises de pseudo-classe, du survol et de la transfromm trition pour obtenir des effets d'animation.
L'axe des x s'agrandit de l'intérieur vers l'extérieur
Utilisez la courbe de Bézier pour réaliser l'animation de lignes horizontales. Le code spécifique est le suivant :
ul { display: flex; padding: 0; margin: 0; list-style-type: none; } ul:hover li:not(:hover) a { opacity: 0.2; } ul li { position: relative; padding: 30px 25px 30px 25px; cursor: pointer; } ul li::after { position: absolute; content: ""; top: 100%; left: 0; width: 100%; height: 2px; background: #3498db; transform: scaleX(0); transition: 0.4s cubic-bezier(0.165, 0.84, 0.44, 1); } ul li:hover::after, ul li.active::after { transform: scaleX(1); }
(Tutoriel recommandé : Tutoriel CSS)
Effets d'animation de soulignement horizontal gauche et droit
Utiliser principalement js pour déterminez la position de la souris lorsqu'elle est éloignée, déplacez l'effet d'animation vers la gauche et la droite pour afficher
le code js est le suivant :
document.querySelectorAll('a').forEach(elem => { elem.onmouseenter = elem.onmouseleave = e => { const tolerance = 5; const left = 0; const right = elem.clientWidth; let x = e.pageX - elem.offsetLeft; if (x - tolerance < left) x = left; if (x + tolerance > right) x = right; elem.style.setProperty('--x', `${x}px`); }; });
css Utiliser pseudo- balises de classe pour réaliser l'effet d'animation
le code CSS est le suivant :
a { position: relative; font-weight: 600; text-decoration: none; color: rgba(0, 0, 0, 0.4); transition: color .3s ease; } a::after { --scale: 0; content: ''; position: absolute; left: 0; right: 0; top: 100%; height: 3px; background: #4c81c9; -webkit-transform: scaleX(var(--scale)); transform: scaleX(var(--scale)); -webkit-transform-origin: var(--x) 50%; transform-origin: var(--x) 50%; transition: -webkit-transform 0.3s cubic-bezier(0.535, 0.05, 0.355, 1); transition: transform 0.3s cubic-bezier(0.535, 0.05, 0.355, 1); transition: transform 0.3s cubic-bezier(0.535, 0.05, 0.355, 1), -webkit-transform 0.3s cubic-bezier(0.535, 0.05, 0.355, 1); } a:hover { color: #4c81c9; } a:hover::after { --scale: 1; }
Tutoriels associés recommandés : tutoriel vidéo CSS
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!