cari
Rumahhujung hadapan webtutorial css4 kesan hover sejuk yang menggunakan bayangan teks css

4 kesan hover sejuk yang menggunakan bayangan teks css

Dalam artikel sebelumnya, kami membincangkan cara menggunakan sifat latar belakang CSS untuk menghasilkan kesan hover yang sejuk. Kali ini, kami akan memberi tumpuan kepada harta text-shadow CSS dan meneroka kesan hover yang lebih menarik. Anda mungkin tertanya -tanya bagaimana menambahkan bayang -bayang ke teks boleh mempunyai kesan yang sejuk, tetapi maksudnya ialah: kita sebenarnya tidak membuat sebarang bayang -bayang untuk kesan hover teks ini.

Siri Kesan Hover Cool:

  1. Gunakan sifat latar belakang untuk mencapai kesan hover yang sejuk
  2. Gunakan bayangan teks CSS untuk mencapai kesan hover sejuk (lokasi semasa anda!)
  3. Gunakan tanaman latar, pelekat dan 3D untuk mencapai kesan hover yang sejuk

text-shadow tetapi tidak ada bayangan teks?

Izinkan saya mengeluarkan kekeliruan dengan kesan hover yang akan kita bina dalam demo berikut:

Tanpa melihat kod itu, ramai di antara kamu secara intuitif akan berfikir bahawa untuk setiap kesan hover, kita menyalin teks dan menghidupkannya secara bebas. Sekarang, jika anda melihat kod tersebut, anda akan mendapati bahawa tiada teks dalam HTML sebenarnya disalin. Pernahkah anda perasan content: "text" tidak digunakan dalam CSS?

Lapisan teks dicipta sepenuhnya dengan text-shadow !

Hover kesan #1

Mari merosakkan kod CSS:

 .Hover-1 {
  Talian ketinggian: 1.2EM;
  Warna: #0000;
  bayang-bayang teks: 
    0 0 #000, 
    0 1.2EM #1095C1;
  Limpahan: Tersembunyi;
  Peralihan: .3s;
}
.Hover-1: Hover {
  bayang-bayang teks: 
    0 -1.2em #000, 
    0 0 #1095C1;
}

Perkara pertama yang perlu diperhatikan ialah untuk menyembunyikan teks sebenar, saya menetapkan warna teks sebenar menjadi telus (menggunakan #0000 ). Selepas itu, saya menggunakan text-shadow untuk membuat dua bayang-bayang, masing-masing hanya mentakrifkan dua nilai panjang. Ini bermakna tiada radius kabur, mengakibatkan bayang -bayang yang jelas dan tajam yang menghasilkan salinan teks dengan warna yang ditentukan.

Itulah sebabnya saya mendakwa dalam pengenalan bahawa tidak ada bayangan di sini. Apa yang kita lakukan tidak begitu banyak bayangan "klasik" sebagai cara mudah untuk menyalin teks.

Kami mempunyai dua lapisan teks yang kami bergerak ketika melayang. Jika kita menyembunyikan limpahan, teks pendua akan tidak kelihatan dan bergerak menjadikannya kelihatan seperti teks sebenar telah digantikan oleh teks lain. Ini adalah helah utama untuk membuat semua contoh dalam artikel ini berfungsi dengan baik.

Mari mengoptimumkan kod tersebut. Saya menggunakan nilai 1.2em beberapa kali untuk menentukan ketinggian dan mengimbangi bayangan, menjadikannya calon yang ideal untuk sifat adat CSS (kami memanggilnya --h ):

 .Hover-1 {
  --h: 1.2em;

  ketinggian garis: var (-h);
  Warna: #0000;
  bayang-bayang teks: 
    0 0 #000, 
    0 var (-h) #1095C1;
  Limpahan: Tersembunyi;
  Peralihan: .3s;
}
.Hover-1: Hover {
  bayang-bayang teks: 
    0 calc (-1 * var (-h)) #000, 
    0 0 #1095C1;
}

Kami juga boleh memudahkan kod menggunakan lebih banyak pengiraan calc() supaya kami hanya menggunakan text-shadow sekali. (Kami melakukan perkara yang sama dalam jawatan terdahulu.)

 .Hover-1 {
  --h: 1.2em;   

  ketinggian garis: var (-h);
  Warna: #0000;
  bayang-bayang teks: 
    0 calc (-1*var (--_ t, 0em)) #000, 
    0 calc (var (-h)-var (--_ t, 0em)) #1095C1;
  Limpahan: Tersembunyi;
  Peralihan: .3s;
}
.Hover-1: Hover {
  --_ t: var (-h);
}

Jika anda tertanya -tanya mengapa saya menambah garis bawah ke pembolehubah --_t , ini hanya konvensyen penamaan yang saya gunakan untuk membezakan antara pembolehubah (seperti --h ) yang pengguna boleh mengemas kini dari pembolehubah dalaman (seperti --_t ) yang hanya digunakan untuk tujuan pengoptimuman dan tidak perlu diubah. Dalam erti kata lain, garis bawah adalah sebahagian daripada nama pembolehubah dan tidak mempunyai makna yang istimewa.

Kami juga boleh mengemas kini kod untuk mendapatkan kesan yang bertentangan, di mana teks pendua slaid dari atas:

Kami hanya membuat kemas kini kecil ke harta text-shadow - kami tidak menyentuh apa -apa lagi!

Hover Effect #2

Untuk kesan ini, kami akan menghidupkan dua sifat: text-shadow dan background . Mengenai text-shadow kita masih mempunyai dua lapisan seperti contoh sebelumnya, tetapi kali ini kita akan bergerak hanya satu daripada mereka sambil menetapkan warna lapisan lain ke telus semasa swap.

 .Hover-2 {
  /* tinggi*/
  --h: 1.2em;

  ketinggian garis: var (-h);
  Warna: #0000;
  bayang-bayang teks: 
    0 var (--_ t, var (-h)) #fff,
    0 0 var (--_ c, #000);
  Peralihan: 0.3s;
}
.Hover-2: Hover {
  --_ t: 0;
  --_ C: #0000;
}

Pada hover, kami menggerakkan lapisan teks putih ke bahagian atas sambil menukar warna lapisan lain menjadi telus. Untuk melakukan ini, kami menambah animasi background-size yang digunakan untuk kecerunan:

Akhirnya, kami menambah overflow: hidden untuk menjadikan animasi hanya dapat dilihat di dalam sempadan elemen:

 .Hover-2 {
  /* tinggi*/
  --h: 1.2em;

  ketinggian garis: var (-h);
  Warna: #0000;
  bayang-bayang teks: 
    0 var (--_ t, var (-h)) #ffff,
    0 0 var (--_ c, #000);
  Latar Belakang: 
    Linear-Gradient (#1095C1 0 0) 
    bawah/100% var (--_ d, 0) tidak berulang;
  Limpahan: Tersembunyi;
  Peralihan: 0.3s;
}
.Hover-2: Hover {
  --_ D: 100%;
  --_ t: 0;
  --_ C: #0000;
}

Apa yang kita lakukan di sini adalah untuk menggabungkan ciri-ciri text-shadow CSS dan background untuk menghasilkan kesan hover yang sejuk. Selain itu, kami dapat menggunakan pembolehubah CSS untuk mengoptimumkan kod tersebut.

Jika tatabahasa latar belakang kelihatan pelik, saya sangat mengesyorkan anda membaca catatan terdahulu saya. Kesan hover seterusnya juga bergantung pada animasi yang saya terperinci dalam jawatan itu. Kecuali anda sudah biasa dengan kemahiran latar belakang CSS, saya cadangkan anda membaca artikel itu untuk maklumat latar belakang sebelum terus membaca artikel ini.

Dalam jawatan terdahulu, anda menunjukkan kepada kami bagaimana untuk membuat kesan hover menggunakan hanya satu pembolehubah - bolehkah anda melakukannya di sini?

Ya, betul -betul! Kita sememangnya boleh menggunakan teknik pensuisan kering yang sama supaya kita hanya perlu mengendalikan harta tersuai CSS yang hanya menukar nilai semasa melayang:

 .Hover-2 {
  /* tinggi*/
  --h: 1.2em;

  ketinggian garis: var (-h);
  Warna: #0000;
  bayang-bayang teks: 
    0 var (--_ i, var (-h)) #fff,
    0 0 rgb (0 0 0 / calc (var (--_ i, 1) * 100%));
  Latar Belakang: 
    Linear-Gradient (#1095C1 0 0) 
    bawah/100% calc (100%-var (--_ i, 1) * 100%) no-repeat;
  Limpahan: Tersembunyi;
  Peralihan: 0.3s;
}
.Hover-2: Hover {
  --_ i: 0;
}

Hover effect #3

Kesan hover ini tidak lebih daripada gabungan dua kesan yang telah kami buat: kesan hover kedua dalam jawatan terdahulu dan kesan hover pertama dalam jawatan ini.

 .Hover-3 {
  /* warna*/
  --c: #1095C1;
  /* tinggi*/
  --h: 1.2em;

  /* Kesan hover pertama dalam artikel ini*/
  ketinggian garis: var (-h);  
  Warna: #0000;
  Limpahan: Tersembunyi;
  bayang-bayang teks: 
    0 calc (-1 * var (--_ t, 0em)) var (-c), 
    0 calc (var (-h)-var (--_ t, 0em)) #fff;
  /* Kesan hover kedua dalam jawatan terdahulu*/
  Latar Belakang: 
    Linear-Gradient (Var (-C) 0 0) NO Repeat 
    calc (200%-var (--_ p, 0%)) 100% / 200% var (--_ p, .08EM);
  Peralihan: .3s var (--_ s, 0s), Latar Belakang-kedudukan .3s calc (.3s-var (--_ s, 0s));
}
.Hover-3: Hover {
  --_ t: var (-h);
  --_ P: 100%;
  --_ S: .3s
}

Apa yang saya lakukan adalah menyalin dan menyisipkan kesan dari contoh lain dan membuat beberapa tweak kecil kepada nama pembolehubah. Apabila mereka digabungkan, mereka membuat kesan hover yang bersih! Pada pandangan pertama, kesan ini mungkin kelihatan rumit dan sukar dicapai, tetapi pada akhirnya, ia hanya menggabungkan dua kesan yang agak mudah ke dalam satu.

Jika kita menganggap pengoptimuman sebelumnya yang telah kita selesaikan, ia juga harus menjadi tugas mudah untuk mengoptimumkan kod menggunakan teknologi pembolehubah toggle kering:

 .Hover-3 {
  /* warna*/
  --c: #1095C1;
  /* tinggi*/
  --h: 1.2em;

  ketinggian garis: var (-h);  
  Warna: #0000;
  Limpahan: Tersembunyi;
  bayang-bayang teks: 
    0 calc (-1 * var (-h) * var (--_ i, 0)) var (-c), 
    0 calc (var (-h) * (1-var (--_ i, 0))) #fff;
  Latar Belakang: 
    Linear-Gradient (Var (-C) 0 0) NO Repeat
    Calc (200%-var (--_ i, 0) * 100%) 100% / 200% calc (100% * var (--_ i, 0) .08EM);
  Peralihan: .3s calc (var (--_ i, 0) * .3s), latar belakang-kedudukan .3s calc (.3s-calc (var (--_ i, 0) * .3s));
}
.Hover-3: Hover {
  --_ i: 1;
}

Hover Effect #4

Kesan hover ini adalah peningkatan kepada kesan hover kedua. Pertama, mari kita memperkenalkan animasi clip-path untuk memaparkan salah satu lapisan teks, dan kemudian gerakkannya:

Berikut adalah penjelasan yang lebih baik untuk lebih memahami apa yang sedang berlaku:

Pada mulanya, kami menggunakan inset(0 0 0 0) , yang sama dengan overflow: hidden , kerana kita hanya melihat teks sebenar. Pada hover, kami mengemas kini nilai ketiga (mewakili bahagian bawah) dengan nilai negatif yang sama dengan ketinggian untuk memaparkan lapisan teks yang diletakkan di bahagian bawah.

Dari sana kita dapat menambahkan ini ke kesan hover kedua yang kita buat dalam artikel ini, dan inilah yang kita dapat:

Kami semakin dekat dan lebih dekat! Perhatikan bahawa kita perlu menjalankan animasi clip-path terlebih dahulu dan kemudian segala-galanya. Untuk melakukan ini, kita boleh menambah kelewatan kepada semua sifat pada hover, kecuali clip-path :

 Peralihan: 0.4s 0.4s, Clip-Path 0.4s;

Apabila tetikus dipindahkan, kami melakukan sebaliknya:

 Peralihan: 0.4s, Clip-Path 0.4s 0.4s;

Sentuhan terakhir adalah untuk menambah box-shadow untuk membuat kesan gelongsor segi empat tepat biru. Malangnya, background tidak menghasilkan kesan ini, kerana latar belakang dipotong ke kawasan kandungan secara lalai. Pada masa yang sama, box-shadow boleh melampaui kawasan kandungan.

 .Hover-4 {
  /* warna*/
  --c: #1095C1;
  /* tinggi*/
  --h: 1.2em;

  ketinggian garis: var (-h);
  Warna: #0000;
  bayang-bayang teks: 
    0 var (--_ t, var (-h)) #fff,
    0 0 var (--_ c, #000);
  box-shadow: 0 var (--_ t, var (-h)) var (-c);
  Clip-Path: Inset (0 0 0 0);
  Latar Belakang: Linear-Gradient (var (-c) 0 0) 0 var (--_ t, var (-h)) no-repeat;
  Peralihan: 0.4s, Clip-Path 0.4s 0.4s;
}
.Hover-4: Hover {
  --_ t: 0;
  --_ C: #0000;
  klip-path: inset (0 0 calc (-1 * var (-h)) 0);
  Peralihan: 0.4s 0.4s, Clip-Path 0.4s;
}

Jika anda melihat dengan teliti pada box-shadow , anda akan mendapati bahawa ia mempunyai nilai yang sama seperti lapisan teks putih di dalam text-shadow . Ini adalah logik, kerana kedua -duanya perlu dipindahkan dengan cara yang sama. Kedua -duanya akan meluncur ke bahagian atas. box-shadow kemudian di belakang elemen dan text-shadow berada di bahagian atas.

Berikut adalah demonstrasi dengan beberapa pengubahsuaian untuk menggambarkan bagaimana lapisan bergerak:

Tunggu, sintaks latar belakang sedikit berbeza daripada yang digunakan dalam kesan hover kedua!

Penglihatan yang baik! Ya, kami menggunakan teknik latar belakang yang berbeza untuk menghasilkan kesan yang sama. Daripada menghidupkan saiz dari 0% hingga 100%, kami menghidupkan kedudukannya.

Jika kita tidak menentukan saiz pada kecerunan, ia akan menduduki keseluruhan lebar dan ketinggian secara lalai. Oleh kerana kita tahu ketinggian elemen ( --h ), kita boleh membuat kesan gelongsor dengan mengemas kini kedudukan dari 0 var(--h) hingga 0 0 .

 .Hover-4 {
  / * ... */
  Latar Belakang: Linear-Gradient (var (-c) 0 0) 0 var (--_ t, var (-h)) no-repeat;
}
.Hover-4: Hover {
  --_ T: 0;
}

Kita boleh menggunakan animasi background-size untuk mendapatkan kesan yang sama, tetapi kami hanya menambah helah lain ke senarai helah kami!

Dalam demo, anda juga menggunakan inset(0 0 1px 0) ... mengapa?

Saya kadang -kadang menambah atau mengeluarkan beberapa piksel atau peratusan di sini untuk menyempurnakan apa sahaja yang tidak kelihatan sangat baik. Dalam kes ini, garis buruk muncul di bahagian bawah, sambil menambah 1px akan mengeluarkannya.

Bagaimana pula dengan pengoptimuman berubah -ubah kering?

Saya akan meninggalkan tugas ini kepada anda! Selepas membaca empat kesan hover dan artikel terdahulu, anda harus dapat mengemas kini kod supaya ia hanya menggunakan satu pembolehubah. Saya ingin melihat percubaan anda dalam komen!

Sekarang awak!

Biarkan saya berkongsi kesan hover terakhir, yang merupakan versi lain dari kesan terdahulu. Bolehkah anda mengetahui bagaimana ia dilaksanakan tanpa melihat kod tersebut? Ini adalah latihan yang hebat, jadi jangan menipu!

Meringkaskan

Kami melihat banyak contoh yang menunjukkan bagaimana menggunakan satu elemen dan beberapa baris CSS cukup untuk membuat beberapa kesan hover yang agak kompleks pada elemen teks-tidak ada unsur-unsur pseudo yang diperlukan! Kami juga dapat menggabungkan pelbagai teknologi untuk mencapai animasi yang lebih kompleks dengan usaha yang lebih kecil.

Sekiranya anda berminat untuk menggali apa yang melampaui empat kesan hover bayang -bayang teks dalam artikel ini, lihat koleksi 500 kesan hover saya, di mana saya meneroka pelbagai teknik yang berbeza.

Atas ialah kandungan terperinci 4 kesan hover sejuk yang menggunakan bayangan teks css. 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
Dua gambar dan API: Segala yang kita perlukan untuk Recoloring ProductDua gambar dan API: Segala yang kita perlukan untuk Recoloring ProductApr 15, 2025 am 11:27 AM

Baru -baru ini saya dapati penyelesaian untuk mengemas kini warna mana -mana imej produk. Jadi dengan hanya satu produk, kita boleh mewarnakannya dengan cara yang berbeza untuk ditunjukkan

Berita Platform Mingguan: Kesan kod pihak ketiga, kandungan campuran pasif, negara dengan sambungan yang paling lambatBerita Platform Mingguan: Kesan kod pihak ketiga, kandungan campuran pasif, negara dengan sambungan yang paling lambatApr 15, 2025 am 11:19 AM

Pada minggu ini, Roundup, Lighthouse menyoroti cahaya pada skrip pihak ketiga, sumber yang tidak selamat akan disekat di tapak yang selamat, dan banyak kelajuan sambungan negara

Pilihan untuk menganjurkan analisis berasaskan bukan JavaScript anda sendiriPilihan untuk menganjurkan analisis berasaskan bukan JavaScript anda sendiriApr 15, 2025 am 11:09 AM

Terdapat banyak platform analisis untuk membantu anda mengesan data pelawat dan penggunaan di laman web anda. Mungkin paling penting Google Analytics, yang digunakan secara meluas

Ia ' s di kepala: Menguruskan Ketua Dokumen Tapak Berteakona dengan Helmet ReactIa ' s di kepala: Menguruskan Ketua Dokumen Tapak Berteakona dengan Helmet ReactApr 15, 2025 am 11:01 AM

Ketua dokumen mungkin bukan bahagian paling glamor dari laman web, tetapi apa yang masuk ke dalamnya boleh dikatakan sama pentingnya dengan kejayaan laman web anda sebagai

Apa itu Super () dalam JavaScript?Apa itu Super () dalam JavaScript?Apr 15, 2025 am 10:59 AM

Apa yang berlaku apabila anda melihat beberapa JavaScript yang memanggil Super (). Dalam kelas kanak -kanak, anda menggunakan super () untuk memanggil pembina ibu bapa dan super. untuk mengaksesnya

Membandingkan pelbagai jenis popup JavaScript asliMembandingkan pelbagai jenis popup JavaScript asliApr 15, 2025 am 10:48 AM

JavaScript mempunyai pelbagai API popup terbina dalam yang memaparkan UI khas untuk interaksi pengguna. Terkenal:

Mengapa laman web yang boleh diakses begitu sukar untuk dibina?Mengapa laman web yang boleh diakses begitu sukar untuk dibina?Apr 15, 2025 am 10:45 AM

Saya sedang berbual dengan beberapa orang depan pada hari yang lain tentang mengapa begitu banyak syarikat berjuang untuk membuat laman web yang boleh diakses. Mengapa laman web yang boleh diakses begitu sukar

Atribut `tersembunyi` kelihatan lemahAtribut `tersembunyi` kelihatan lemahApr 15, 2025 am 10:43 AM

Terdapat atribut HTML yang betul -betul apa yang anda fikir harus dilakukan:

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini