Maison > interface Web > tutoriel CSS > Comment obtenir un effet de survol de couleur de texte inversé à l'aide de chemins de clips CSS et de JavaScript ?

Comment obtenir un effet de survol de couleur de texte inversé à l'aide de chemins de clips CSS et de JavaScript ?

Barbara Streisand
Libérer: 2024-10-28 03:51:30
original
880 Les gens l'ont consulté

How to Achieve an Inverted Text Color Hover Effect Using CSS Clip-paths and JavaScript?

Inverser la couleur du texte au survol de la souris à l'aide de CSS et JavaScript

Pour obtenir l'effet de survol souhaité, où le texte noir s'inverse en blanc tout en conservant le apparition d'un curseur noir, nous pouvons combiner les capacités des chemins de clips CSS avec la gestion des événements JavaScript.

L'approche consiste à créer deux couches de texte : la couche de texte principale et une couche de texte inversée. Le calque de texte inversé est positionné derrière le calque de texte principal et sa couleur de texte est définie sur blanc.

À l'aide de JavaScript, nous capturons le mouvement de la souris et ajustons dynamiquement le chemin de détourage du calque de texte inversé. Au fur et à mesure que la souris se déplace, le chemin du clip est ajusté pour révéler davantage de texte inversé, créant l'illusion du texte principal inversant sa couleur.

Voici une répartition des composants clés du code :

<code class="css">/* Primary Text Layer */
h1 {
  color: #000;
  position: relative;
}

/* Inverted Text Layer */
h1:before {
  position: absolute;
  content: attr(data-text); /* Same text as primary layer */
  color: #fff;
  background: #000;
  clip-path: circle(0 at var(--x, -100%) var(--y, -100%)); /* Dynamic Clip-path */
}

/* Cursor */
.cursor {
  position: fixed;
  width: 40px;
  height: 40px;
  background: #000;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  z-index: -2;
}</code>
Copier après la connexion
<code class="javascript">// Event Listener for Mouse Movement
document.body.onmousemove = function(e) {
  // Update cursor position
  cursor.style.left = e.clientX + 'px';
  cursor.style.top = e.clientY + 'px';

  // Update clip-path of inverted layer based on mouse position
  h1.style.setProperty('--x', (e.clientX - p.top) + 'px');
  h1.style.setProperty('--y', (e.clientY - p.left) + 'px');
};</code>
Copier après la connexion

Exemple de code :

<code class="html"><h1 data-text="WORK">WORK</h1>
<span class="cursor"></span></code>
Copier après la connexion

Résultat :

Lorsque vous survolez le texte "WORK", le le texte noir passera progressivement au blanc à mesure que le curseur de la souris se déplace.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal