


純css實(shí)現(xiàn)Magicline Navigation(下劃線動(dòng)畫(huà)導(dǎo)航菜單)_html/css_WEB-ITnose
Jun 24, 2016 am 11:45 AM
看別人網(wǎng)站的時(shí)候,看到一種導(dǎo)航菜單的動(dòng)畫(huà),覺(jué)得很有意思,就仔細(xì)研究起來(lái)。
目前見(jiàn)過(guò)的動(dòng)畫(huà)有三種:水平下劃線動(dòng)畫(huà)導(dǎo)航、水平背景動(dòng)畫(huà)導(dǎo)航、垂直動(dòng)畫(huà)導(dǎo)航,他們實(shí)現(xiàn)思路都是一樣的,都是依賴 css3的同級(jí)通用選擇器 "~" 。
自己實(shí)現(xiàn)了一遍,本文簡(jiǎn)要記錄實(shí)現(xiàn)的思想。
大家可以先看看最后實(shí)現(xiàn)的效果:Demo點(diǎn)我
實(shí)現(xiàn)思路
HTML 結(jié)構(gòu)
HTML結(jié)構(gòu)沒(méi)有特殊,就是 ul -> li:
<ul class="a"> <li class="n1"><a href="#">Navigator A</a></li> <li class="n2"><a href="#">Navigator B</a></li> <li class="n3 selected"><a href="#">Navigator C</a></li> <li class="n4"><a href="#">Navigator D</a></li> <li class="quebec"> </li></ul>
最后一個(gè)li空著,留著后面有用。
CSS 布局
實(shí)現(xiàn)基本樣式,不多解釋:
li { list-style: none outside; position: relative; z-index: 1; float: left; padding: 0 0 0 0; } li a { position: relative; top: 5px; display: block; margin: 0 0; border-bottom: 5px solid transparent; padding: 10px 0; text-align: center; text-decoration: none; } .selected a { border-bottom: 5px solid #cfd0d0; color: #340e56; }
實(shí)現(xiàn)導(dǎo)航下劃線
下面實(shí)現(xiàn)動(dòng)畫(huà)部分。
下方紫色滾動(dòng)條是通過(guò),剛才留著的最后一個(gè)li元素實(shí)現(xiàn)。
.quebec { position: absolute; bottom: -5px; left: 0; z-index: 3; margin: 0; border: 0; width: 5px; height: 5px; padding: 0; overflow: hidden; text-indent: -9999em; background: #511d7f; -webkit-transition-property: left, width; -moz-transition-property: left, width; -ms-transition-property: left, width; -o-transition-property: left, width; transition-property: left, width; -webkit-transition-duration: .5s; -moz-transition-duration: .5s; -ms-transition-duration: .5s; -o-transition-duration: .5s; transition-duration: .5s; }
通過(guò)絕對(duì)定位,把最后一個(gè) li.quebec 定位到導(dǎo)航下方,設(shè)置寬度高度。設(shè)置 transition,當(dāng)我們改變 left, width的時(shí)候就能實(shí)現(xiàn)動(dòng)畫(huà)。
動(dòng)起來(lái)
當(dāng)hover到導(dǎo)航上面的時(shí)候,li.quebec 就定位left到其下面。實(shí)現(xiàn)這個(gè)效果的是css3的同級(jí)通用選擇器 “~”
比如 A ~ B 匹配的是 任何在A元素之后的同級(jí)B元素。
.n1:hover ~ li.quebec { left: 0; width: 95px; } .n2:hover ~ li.quebec { left: 100px; width: 95px; } .n3:hover ~ li.quebec { left: 192px; width: 95px; } .n4:hover ~ li.quebec { left: 285px; width: 95px; }
這里就完成了一個(gè) 純css的下劃線動(dòng)畫(huà)導(dǎo)航。 最后的效果:Demo查看
擴(kuò)展
當(dāng)我們會(huì)實(shí)現(xiàn)水平的下劃線動(dòng)畫(huà)導(dǎo)航后,實(shí)現(xiàn) 背景移動(dòng)動(dòng)畫(huà)導(dǎo)航 思路也是一樣,不過(guò)是li.quebec高度寬度的變化,背景透明度的變化。
垂直的動(dòng)畫(huà)導(dǎo)航 亦是如此,改變 li.quebec 的高度寬度,通過(guò) translateY 控制其在垂直方向的位置。
為了效果更炫一點(diǎn),我們還可以在hover不同li的時(shí)候,改變li.quebec的顏色、背景、透明度等。

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Penggunaan rasional tag semantik dalam HTML dapat meningkatkan kejelasan struktur halaman, aksesibilitas dan kesan SEO. 1. Digunakan untuk blok kandungan bebas, seperti jawatan blog atau komen, ia mesti mandiri; 2. Digunakan untuk kandungan berkaitan klasifikasi, biasanya termasuk tajuk, dan sesuai untuk modul yang berlainan halaman; 3. Digunakan untuk maklumat tambahan yang berkaitan dengan kandungan utama tetapi tidak teras, seperti cadangan sidebar atau profil pengarang. Dalam perkembangan sebenar, label harus digabungkan dan lain -lain, elakkan bersarang yang berlebihan, pastikan struktur mudah, dan sahkan rasionalitas struktur melalui alat pemaju.

Memuatkan = "Lazy" adalah atribut HTML untuk dan yang membolehkan fungsi pemuatan malas asli penyemak imbas untuk meningkatkan prestasi halaman. 1. 2. Ia sesuai untuk sejumlah besar gambar atau kandungan tertanam dalam halaman panjang; 3. Ia tidak sesuai untuk imej skrin pertama, ikon kecil, atau pemuatan malas menggunakan JavaScript; 4. Adalah perlu untuk bekerjasama dengan langkah -langkah pengoptimuman seperti menetapkan saiz dan memampatkan fail untuk mengelakkan offset susun atur dan memastikan keserasian. Apabila menggunakannya, anda harus menguji pengalaman menatal dan menimbang pengalaman pengguna.

Apabila menulis HTML undang -undang dan kemas, anda perlu memberi perhatian kepada struktur yang jelas, semantik yang betul dan format piawai. 1. Gunakan pengisytiharan jenis dokumen yang betul untuk memastikan bahawa penyemak imbas mengikut piawaian HTML5; 2. Simpan tag yang ditutup dan munasabah bersarang untuk mengelakkan melupakan unsur -unsur bersarang tertutup atau salah; 3. Gunakan tag semantik seperti, dan lain -lain untuk meningkatkan kebolehcapaian dan SEO; 4. Nilai atribut sentiasa dibalut sebut harga, dan petikan tunggal atau berganda digunakan secara seragam. Atribut Boolean hanya perlu wujud, dan nama kelas harus bermakna dan mengelakkan atribut yang berlebihan.

Struktur laman web perlu disokong oleh elemen HTML teras. 1. Struktur keseluruhan halaman terdiri daripada, yang merupakan unsur akar, yang menyimpan maklumat meta dan memaparkan kandungan; 2. Organisasi kandungan bergantung pada tajuk (-), perenggan () dan tag blok (seperti,) untuk meningkatkan struktur organisasi dan SEO; 3. Navigasi dilaksanakan melalui dan dilaksanakan, organisasi yang biasa digunakan dihubungkan dan ditambah dengan atribut aria-semasa untuk meningkatkan kebolehcapaian; 4. Borang Interaksi melibatkan, dan, untuk memastikan fungsi input dan penyerahan pengguna lengkap. Penggunaan unsur -unsur ini dapat meningkatkan kejelasan halaman, penyelenggaraan dan pengoptimuman enjin carian.

Ia sebenarnya sangat mudah untuk menulis gaya dalam talian menggunakan atribut gaya HTML. Hanya tambah gaya = "..." ke tag dan kemudian tulis peraturan CSS di dalamnya. 1. Kaedah penulisan asas adalah gaya CSS dengan nilai atribut dalam bentuk rentetan. Setiap gaya dipisahkan oleh titik koma. Formatnya ialah nama atribut: nilai atribut. Sebagai contoh: perenggan teks ini merah. Perhatikan bahawa keseluruhan rentetan gaya harus dibungkus dalam petikan berganda. Setiap atribut CSS harus ditambah dengan titik koma selepas itu. Nama atribut adalah kaedah penulisan standard CSS; 2. Senario yang berkenaan untuk gaya sebaris termasuk kawalan gaya dinamik, pembangunan templat e -mel dan debugging pesat, seperti membenarkan gambar dipaparkan di pusat yang akan ditulis; 3. Beberapa perangkap yang perlu dielakkan termasuk keutamaan yang tinggi tetapi sukar untuk mengekalkan, banyak pengulangan kod, dan watak khas.

JavaScript secara dinamik mencipta, mengubahsuai, bergerak dan memadam elemen HTML melalui operasi DOM. 1. Gunakan document.createelement () untuk membuat elemen baru dan menambahkannya ke halaman melalui appendChild () atau InsertBefore (); 2. Pilih elemen sedia ada melalui QuerySelector () atau getElementById (), dan ubah suai mereka menggunakan TextContent, InnerHTML, setAttribute () dan kaedah lain; 3. Apabila memproses pelbagai elemen melalui gelung, anda perlu ambil perhatian bahawa querySelectorAll () mengembalikan nodelist; 4. Pindah

Thefourmosimpactfulhtmlattributesforseoarethetitletag, altattribute, hrefattribute, andmetadescription.1.Thetitletaginthesectioniscialasitinformsusersandsearchenginesabouthepage'Scontent, Mustbeconcise, Mustbeconcise, Mustbeconcise, Mustbeconcise, Mustbeconcise, Mustbeconcise, Mustbeconcisise, Mustbeconcise, Mustbeconcise, Mustbeconcise, Mustbeconcise, Mustbeconcise, Mustbeconcise, Mustbeconcise, Mustbeconcise, Mustbeconcise, Mustbeconcise, Mustbeconcise, Keybeconcisis,

TheintegrityattributeensureSourceHasn'tbeenmodifiedbyusingacryptographichaCh, whileCrossoriginhandlescross-originrequeststoenablePropervalidation.1.IntegrityChecksthefile'sAuthenticityviasha-256, Sha-384, OrshaSon-384, OrshaSon-384, OrshaSon-384, OrshaSons.
