"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como obter um efeito de foco de cor de texto invertido usando caminhos de clipe CSS e JavaScript?

Como obter um efeito de foco de cor de texto invertido usando caminhos de clipe CSS e JavaScript?

Publicado em 2024-11-09
Navegar:402

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

Inverter a cor do texto ao passar o mouse usando CSS e JavaScript

Para obter o efeito de foco desejado, onde o texto preto é invertido para branco enquanto mantém o aparência de um cursor preto, podemos combinar os recursos de clip-paths CSS com manipulação de eventos JavaScript.

A abordagem consiste em criar duas camadas de texto: a camada de texto primária e uma camada de texto invertida. A camada de texto invertida é posicionada atrás da camada de texto primária e tem sua cor de texto definida como branco.

Usando JavaScript, capturamos o movimento do mouse e ajustamos dinamicamente o caminho do clipe da camada de texto invertida. À medida que o mouse se move, o caminho do clipe é ajustado para revelar mais texto invertido, criando a ilusão de que o texto principal inverte sua cor.

Aqui está uma análise dos principais componentes do 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 exemplo:

WORK

Resultado:

Quando você passa o mouse sobre o texto "WORK", o texto preto mudará gradualmente para branco conforme o cursor do mouse se move.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3