Rumah hujung hadapan web tutorial js Kemahiran javascript menu terapung buatan tangan_javascript

Kemahiran javascript menu terapung buatan tangan_javascript

May 16, 2016 pm 04:14 PM
javascript menu terapung

Mencipta semula beberapa roda secara selektif tidak semestinya sesuatu yang buruk. Menu terapung telah ditambahkan pada blog Aaron, yang nampaknya sangat mewah. Walaupun ini bukan kali pertama saya melihat helah seperti ini, saya tidak pernah menulisnya sendiri. Hari ini saya akan menulis secara selektif tentang fungsi ini. Berikut ialah proses pembangunan roda ini, yang juga boleh dianggap sebagai proses analisis dan pelaksanaan dokumen keperluan.

Alamat demo: http://sandbox.runjs.cn/show/to8wdmuy

Muat turun kod sumber: https://github.com/bjtqti/floatmenu

Langkah pertama ialah mencipta struktur nod DOM:

Salin kod Kod adalah seperti berikut:





AppCarrier




& Lt; h1 id = "test1" & gt; test1 & lt;/h1 & gt;
                             

Masa lalu boleh menyakitkan tetapi anda boleh lari daripadanya atau belajar daripadanya


& Lt; p & gt;                  

Seseorang menemui takdirnya di jalan yang dia lalui untuk mengelakkannya


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        “                                                                 

Peraturan dimaksudkan untuk dilanggar


               

Peraturan harus dilanggar.


                  

Bertahun-tahun mungkin mengerutkan kulit, tetapi melepaskan semangat mengerutkan jiwa.


& Lt; p & gt; berlalunya tahun hanya membuat wajah tua, dan semangat tidak lagi layu hati.


& Lt; h1 id = "test2" & gt; test2 & lt;/h1 & gt;
& Lt; p & gt; Hanya dengan sentiasa mengamalkan pengetahuan anda boleh menguasainya.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

Nikmati setiap hari.


& Lt; p & gt; menjaga mata anda pada bintang -bintang, dan kaki anda di atas tanah. & Lt;/p & gt;
& Lt; p & gt;


                                                                                                                                                                                                                                  ... p>
& Lt; p & gt;


                    

Hidup penuh dengan kekecewaan. Anda tidak boleh teruskan.


& Lt; p & gt;


                                              

Saya seorang yang merdeka, saya tidak boleh dikurung.


Jiwa saya bebas dan tidak harus terikat.


                                                                                                                                                                                                                                                                                                                                                                                            & Lt; P & gt;                                      

Perkara yang mudah juga merupakan perkara yang paling luar biasa, dan hanya orang yang bijak dapat melihatnya.


               

Perkara yang paling biasa juga adalah perkara yang paling luar biasa, hanya orang yang bijak sahaja yang dapat memahami.


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                >test3
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     ;              

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

test4


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


             

how many xxxxxx


   








Langkah kedua ialah menyediakan fail css:


Salin kod

Kod adalah seperti berikut: ul { Jenis gaya senarai: tiada; } sebuah {
hiasan teks: tiada;
}
/*Kawasan kandungan artikel*/
#kandungan {
Lebar:400px;
margin: 0 auto;
saiz fon: 2em;
}
/*Menu digantung*/
.menu {
kedudukan: tetap;
Atas:20%;
Kanan: 0;
Lebar:200px;
Sempadan: 1px kelabu padu;
Jejari sempadan: 5px;
}
.menu li {
Tinggi: 2em;
Ketinggian garisan: 2em;
}
.merah {
Warna: merah;
}
.sembunyikan {
Paparan: tiada;
}
/*Sembunyikan menu terapung*/
.slideIn {
Transform: translate3d(202px, 0, 0);
Tempoh peralihan: .5s;
}
/*Paparkan menu terapung*/
.slideOut {
Transform: translate3d(0, 0, 0);
Tempoh peralihan: .5s;
}
.statik {
Warna:#007aff;
Jajaran teks: tengah;
}
/*Paparkan bola yang digantung*/
.untukTunjukkan {
Paparan: blok;
          lebar: 4.8em;
Tinggi: 2em;
         ketinggian garisan: 2em;
         jejari sempadan: .5em;
Sempadan:1px kelabu padu;
Transform: translate3d(-5em, 0, 0);
Tempoh peralihan: 1s;
}



Langkah ketiga ialah mula menulis kod js:


Salin kod

Kod adalah seperti berikut:

(fungsi(doc){
//Kumpulkan lokasi pautan setiap bab
var pos = [],
//Kumpul item pada menu
          pautan = doc.getElementsByTagName('a'),
//Kumpul tajuk bab
titles = doc.getElementsByTagName('h1'),
//Menu yang digantung
           menu = doc.getElementById('menubar'),
//Pilihan semasa
           currentItem=null;
//Tambah gaya merah
var addClass = fungsi (elemen){
                 currentItem && currentItem.removeAttribute('class');
                element.setAttribute('class','red');
                  item semasa = elemen;
         },
// Halaman web digulung tinggi:
         getScrollTop = fungsi (){
                kembalikan Math.ceil(document.body.scrollTop) 1;
},
//Kira kedudukan tatal
StartScroll = fungsi (){
            var scrollTop = getScrollTop(),
                   len = tajuk. panjang,
                  i = 0;
//Perkara 1
Jika(scrollTop>=0 && scrollTop                    addClass(pautan[0]);
                  kembali;
            }
// Terakhir <条> Jika(scrollTop>=pos[len-1]){
                    addClass(pautan[len-1]);
                  kembali;
            }
// Di tengah untuk(;i Jika(scrollTop > pos[i] && scrollTop < pos[i 1]){
                      addClass(pautan[i]);
rehat;
                }
            }
};
//Klik pautan dalam senarai untuk menukar warna
menu.onclick=function(e){
        var target = e.target || If(target.nodeName.toLowerCase() === 'a'){
//Petunjuk status item senarai
               addClass(sasaran);
               kembali;
         }
If(target.nodeName.toLowerCase() === 'p'){
If(target.className == 'statik'){
//Sembunyikan menu
This.className = 'menu slideIn';
                    setTimeout(function(){
                                  target.className = 'static toShow';
Target.innerHTML = 'Paparan';
                   },1000);
                }lain{
//Tunjukkan menu
                         target.className = 'statik';
                        target.innerHTML = 'Sembunyikan';
This.className = 'menu slaidOut';
            }
         }
}
//Kira kedudukan awal setiap bab
var ln = titles.length;
; sambil(--ln>-1){
​​​​ //titles[len].offsetParent.offsetTop = 0;
          pos.unshift(titles[ln].offsetTop);
}
StartScroll();
//Dengar tatal
​ window.onscroll = function(){
StartScroll()
}
})(dokumen);

Analisis:

1. Lompat ke bahagian yang ditentukan secara automatik

Langkah ini boleh dilakukan dengan menggunakan fungsi sauh teg menggunakan ID untuk melompat.

2. Kenal pasti bab dalam kandungan di sebelah kiri kepunyaan item dalam menu terapung itu.

Langkah ini sukar, mari analisa secara ringkas dahulu:

2.1 Situasi pertama ialah klik pada item menu secara manual. Ini mudah, cuma kenal pasti elemen yang diklik.

2.2 Dalam kes kedua, tatal melalui butang tengah tetikus atau seret bar skrol Pada masa ini, anda perlu mengaitkan kandungan di sebelah kiri dengan item menu di sebelah kanan. Pertimbangkan strategi untuk melaksanakannya langkah demi langkah, bermula dengan perkara yang mudah dan kemudian perkara yang lebih sukar, dan mengalahkannya satu demi satu.

2.2.1 Kumpul dahulu ketinggian koordinat unsur tajuk. Itulah ketinggian menegak semua teg h1. Simpan dalam tatasusunan 1.

2.2.2 Kumpulkan elemen a dalam item menu dan simpannya dalam tatasusunan 2.

2.2.3 Dengar acara tatal dan tentukan item menu mana yang dimiliki oleh kandungan semasa.

Apabila melakukan langkah, disyorkan untuk melukis gambar pada kertas manuskrip:

A1

****************
                                                                                                                                                   *
                                                                                                                                                                                                                                                                                                                                                                                                *
                                                                                                                                                                                                                                             *
                                                                                                      *

Setiap kali anda menatal, tentukan selang mana jarak tatal semasa Jika ia adalah 0 hingga A1, ia adalah Bab 1, A1 hingga A2 ialah Bab 2, dan seterusnya.

Mengenai kedudukan dan ketinggian elemen, saya hanya menggunakan element.offsetTop untuk mendapatkannya Mungkin terdapat masalah keserasian Jika anda menggunakan jquery untuk melakukannya, ia sepatutnya $('elemen').offset(). atas,

Begitu juga, ketinggian bar bergolek, saya juga hanya menggunakan document.body.scrolltop untuk mendapatkannya Jika ia digantikan dengan jquery, ia sepatutnya $ (tetingkap

).

Fungsi lukisan adalah untuk menjadikan masalah abstrak menjadi konkrit dan membantu kita berfikir dan mengetahui peraturannya. Mungkin memanggilnya "pemodelan" akan menjadi lebih mulia.

Perlu ditekankan bahawa hubungan antara tatasusunan 1 dan tatasusunan 2 haruslah surat-menyurat satu dengan satu. Contohnya,

2.3 Situasi ketiga ialah penunjuk status menu apabila memasuki halaman secara langsung. Contohnya, apabila memasukkan melalui alamat seperti index.html#h3, h3 dalam menu harus diserlahkan.

3. Laksanakan paparan dan animasi menyembunyikan menu terapung.

3.1 Langkah ini sepatutnya agak mudah, jadi anda boleh mempertimbangkan untuk melakukannya terlebih dahulu. Hanya gunakan atribut tramsform CSS3 Ia adalah mudah dan cekap Jika ia adalah penyemak imbas silang, perhatikan keserasian.

Beri perhatian untuk mengubah: translate3d(x-axis, y-axis, z-axis); Menggunakan 3D, anda boleh menggunakan pecutan perkakasan untuk meningkatkan kesan animasi, tetapi penggunaan kuasa akan meningkat, jadi gunakannya dengan sebaiknya! Parameter pertama mengawal arah kiri dan kanan Jika ia positif, ia bermakna bergerak ke kanan Jika ia negatif, ia bermakna bergerak ke kiri. Ini sebenarnya tidak ketat Malah, ia harus ditentukan berdasarkan titik rujukan Contohnya, koordinat x unsur apabila ia pegun ialah 0, kemudian naikkan nilai x ke kanan, turun ke kiri. dan 0 ditetapkan semula.

Selepas analisis, tiba masanya untuk menulis kod. Tiada apa yang boleh dikatakan tentang ini. Nikmati kemuzikan menaip pada papan kekunci.

Selepas selesai menulis, pratontonnya, klik pada menu, lompat ke bab yang ditentukan, dan klik pada item untuk bertukar merah, muat semula halaman semasa, dan kebergantungan akan dipaparkan dengan betul. Luncurkan roda skrol, dan item menu akan berubah dengan sewajarnya apabila kandungan berubah Seret bar skrol, dan perkara yang sama berlaku. Akhirnya, klik untuk menyembunyikan, dan menu akan menarik balik . Ini melengkapkan fungsi terapung.

Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.

Kenyataan Laman Web ini
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

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)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melaksanakan sistem pengecaman pertuturan dalam talian menggunakan WebSocket dan JavaScript Bagaimana untuk melaksanakan sistem pengecaman pertuturan dalam talian menggunakan WebSocket dan JavaScript Dec 17, 2023 pm 02:54 PM

Cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem pengecaman pertuturan dalam talian Pengenalan: Dengan perkembangan teknologi yang berterusan, teknologi pengecaman pertuturan telah menjadi bahagian penting dalam bidang kecerdasan buatan. Sistem pengecaman pertuturan dalam talian berdasarkan WebSocket dan JavaScript mempunyai ciri kependaman rendah, masa nyata dan platform merentas, dan telah menjadi penyelesaian yang digunakan secara meluas. Artikel ini akan memperkenalkan cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem pengecaman pertuturan dalam talian.

WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata Dec 17, 2023 pm 05:30 PM

WebSocket dan JavaScript: Teknologi utama untuk merealisasikan sistem pemantauan masa nyata Pengenalan: Dengan perkembangan pesat teknologi Internet, sistem pemantauan masa nyata telah digunakan secara meluas dalam pelbagai bidang. Salah satu teknologi utama untuk mencapai pemantauan masa nyata ialah gabungan WebSocket dan JavaScript. Artikel ini akan memperkenalkan aplikasi WebSocket dan JavaScript dalam sistem pemantauan masa nyata, memberikan contoh kod dan menerangkan prinsip pelaksanaannya secara terperinci. 1. Teknologi WebSocket

Bagaimana untuk melaksanakan sistem tempahan dalam talian menggunakan WebSocket dan JavaScript Bagaimana untuk melaksanakan sistem tempahan dalam talian menggunakan WebSocket dan JavaScript Dec 17, 2023 am 09:39 AM

Cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem tempahan dalam talian Dalam era digital hari ini, semakin banyak perniagaan dan perkhidmatan perlu menyediakan fungsi tempahan dalam talian. Adalah penting untuk melaksanakan sistem tempahan dalam talian yang cekap dan masa nyata. Artikel ini akan memperkenalkan cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem tempahan dalam talian dan memberikan contoh kod khusus. 1. Apakah itu WebSocket? WebSocket ialah kaedah dupleks penuh pada sambungan TCP tunggal.

Cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata Cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata Dec 17, 2023 pm 12:09 PM

Pengenalan kepada cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata: Dengan populariti Internet dan kemajuan teknologi, semakin banyak restoran telah mula menyediakan perkhidmatan pesanan dalam talian. Untuk melaksanakan sistem pesanan dalam talian masa nyata, kami boleh menggunakan teknologi JavaScript dan WebSocket. WebSocket ialah protokol komunikasi dupleks penuh berdasarkan protokol TCP, yang boleh merealisasikan komunikasi dua hala masa nyata antara pelanggan dan pelayan. Dalam sistem pesanan dalam talian masa nyata, apabila pengguna memilih hidangan dan membuat pesanan

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap Dec 17, 2023 pm 05:13 PM

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap Pengenalan: Hari ini, ketepatan ramalan cuaca sangat penting kepada kehidupan harian dan membuat keputusan. Apabila teknologi berkembang, kami boleh menyediakan ramalan cuaca yang lebih tepat dan boleh dipercayai dengan mendapatkan data cuaca dalam masa nyata. Dalam artikel ini, kita akan mempelajari cara menggunakan teknologi JavaScript dan WebSocket untuk membina sistem ramalan cuaca masa nyata yang cekap. Artikel ini akan menunjukkan proses pelaksanaan melalui contoh kod tertentu. Kami

Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Jan 05, 2024 pm 06:08 PM

Tutorial JavaScript: Bagaimana untuk mendapatkan kod status HTTP, contoh kod khusus diperlukan: Dalam pembangunan web, interaksi data dengan pelayan sering terlibat. Apabila berkomunikasi dengan pelayan, kami selalunya perlu mendapatkan kod status HTTP yang dikembalikan untuk menentukan sama ada operasi itu berjaya dan melaksanakan pemprosesan yang sepadan berdasarkan kod status yang berbeza. Artikel ini akan mengajar anda cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan menyediakan beberapa contoh kod praktikal. Menggunakan XMLHttpRequest

Bagaimana untuk menggunakan insertBefore dalam javascript Bagaimana untuk menggunakan insertBefore dalam javascript Nov 24, 2023 am 11:56 AM

Penggunaan: Dalam JavaScript, kaedah insertBefore() digunakan untuk memasukkan nod baharu dalam pepohon DOM. Kaedah ini memerlukan dua parameter: nod baharu untuk dimasukkan dan nod rujukan (iaitu nod di mana nod baharu akan dimasukkan).

Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah Bagaimana untuk mendapatkan kod status HTTP dalam JavaScript dengan cara yang mudah Jan 05, 2024 pm 01:37 PM

Pengenalan kepada kaedah mendapatkan kod status HTTP dalam JavaScript: Dalam pembangunan bahagian hadapan, kita selalunya perlu berurusan dengan interaksi dengan antara muka bahagian belakang, dan kod status HTTP adalah bahagian yang sangat penting daripadanya. Memahami dan mendapatkan kod status HTTP membantu kami mengendalikan data yang dikembalikan oleh antara muka dengan lebih baik. Artikel ini akan memperkenalkan cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan memberikan contoh kod khusus. 1. Apakah kod status HTTP bermakna kod status HTTP apabila penyemak imbas memulakan permintaan kepada pelayan, perkhidmatan tersebut

See all articles