"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo lograr un efecto de desplazamiento de color de texto invertido utilizando rutas de clip CSS y JavaScript?

¿Cómo lograr un efecto de desplazamiento de color de texto invertido utilizando rutas de clip CSS y JavaScript?

Publicado el 2024-11-09
Navegar:699

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

Invertir el color del texto al pasar el mouse usando CSS y JavaScript

Para lograr el efecto de desplazamiento deseado, donde el texto negro se invierte en blanco mientras se mantiene el apariencia de un cursor negro, podemos combinar las capacidades de las rutas de clip CSS con el manejo de eventos de JavaScript.

El enfoque consiste en crear dos capas de texto: la capa de texto primaria y una capa de texto invertida. La capa de texto invertido se coloca detrás de la capa de texto principal y su color de texto está establecido en blanco.

Usando JavaScript, capturamos el movimiento del mouse y ajustamos dinámicamente la ruta de clip de la capa de texto invertido. A medida que se mueve el mouse, la ruta del clip se ajusta para revelar más texto invertido, creando la ilusión del texto principal invirtiendo su color.

Aquí hay un desglose de los componentes clave del código:

/* 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;
}
// 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');
};

Código de ejemplo:

WORK

Resultado:

Cuando pasas el cursor sobre el texto "TRABAJO", el texto negro pasará gradualmente a blanco a medida que se mueve el cursor del mouse.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3