Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mencapai Kesan Hover Warna Teks Terbalik Menggunakan Laluan Klip CSS dan JavaScript?

Bagaimana untuk Mencapai Kesan Hover Warna Teks Terbalik Menggunakan Laluan Klip CSS dan JavaScript?

Barbara Streisand
Barbara Streisandasal
2024-10-28 03:51:30765semak imbas

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

Terbalikkan Warna Teks pada Tuding Tetikus Menggunakan CSS dan JavaScript

Untuk mencapai kesan tuding yang diingini, di mana teks hitam bertukar menjadi putih sambil mengekalkan penampilan kursor hitam, kita boleh menggabungkan keupayaan laluan klip CSS dengan pengendalian acara JavaScript.

Pendekatannya terdiri daripada mencipta dua lapisan teks: lapisan teks utama dan lapisan teks terbalik. Lapisan teks terbalik diletakkan di belakang lapisan teks utama dan warna teksnya ditetapkan kepada putih.

Menggunakan JavaScript, kami menangkap pergerakan tetikus dan melaraskan laluan klip lapisan teks terbalik secara dinamik. Semasa tetikus bergerak, laluan klip dilaraskan untuk mendedahkan lebih banyak teks terbalik, mewujudkan ilusi teks utama yang menyongsangkan warnanya.

Berikut ialah pecahan komponen kod utama:

<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>
<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>

Contoh Kod:

<code class="html"><h1 data-text="WORK">WORK</h1>
<span class="cursor"></span></code>

Hasil:

Apabila anda menuding pada teks "KERJA", teks hitam secara beransur-ansur akan beralih kepada putih apabila kursor tetikus bergerak.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Kesan Hover Warna Teks Terbalik Menggunakan Laluan Klip CSS dan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn