Rumah > hujung hadapan web > tutorial js > Bina menu dinamik dalam artikel JavaScript

Bina menu dinamik dalam artikel JavaScript

Jennifer Aniston
Lepaskan: 2025-03-11 00:05:08
asal
120 orang telah melayarinya

Bina menu dinamik dalam artikel JavaScript

Di sini, kami tidak bercakap mengenai menu drop-down/pull-down DHTML. Di sini, kita bercakap mengenai menu navigasi mudah menggunakan JavaScript. Ia mengenal pasti halaman aktif, dan dengan itu memaparkan pautan yang berbeza dari pautan lain, menjadikannya mudah bagi pengguna untuk menavigasi. Di sini kami akan menggunakan fail .js tunggal yang akan digunakan untuk semua halaman di bawah menu navigasi. Oleh itu, anda tidak perlu mengemas kini semua halaman: Anda perlu mengemas kini hanya satu fail perpustakaan JavaScript (fail .js). Sebagai contoh, pertimbangkan 3 pautan navigasi ini: Bina menu dinamik dalam artikel JavaScript pautan 1 aktif. Bina menu dinamik dalam artikel JavaScript Link 2 aktif. Bina menu dinamik dalam artikel JavaScript Pautan 3 aktif. Seperti yang anda lihat, ini adalah tembakan bagaimana menu navigasi muncul di halaman yang berbeza bergantung pada pautan yang aktif. Menu ini dihasilkan oleh satu fail JavaScript. Ia mungkin untuk membuat menu sedemikian menggunakan hanya Lembaran Gaya Cascading (CSS), dengan menentukan kelas (katakan .Links) untuk menu, dan memberikan sifat yang berbeza untuk .links: aktif. Jadi, anda boleh membuat menu hanya dengan menggunakan fail CSS. Walaupun ini sempurna, terdapat kelebihan untuk menggunakan JavaScript di sini. Seperti yang anda lihat dalam tembakan di atas, pautan aktif mempunyai watak "â» "pada akhirnya. Ini hanya dibuat untuk pautan aktif, oleh itu ia dibuat secara dinamik. Dengan JavaScript, anda boleh menggunakan mana -mana watak atau imej ikonik yang akan menjadikan pautan itu benar -benar kelihatan aktif.
Pelaksanaan
Untuk melaksanakan menu jenis ini, pertama sekali yang anda perlukan adalah fail CSS, katakan pautan_style.css, untuk menentukan gaya untuk pautan. Seterusnya datang fail javascript nav.js. Dalam fail nav.js, pertama sekali kami mengisytiharkan tiga tatasusunan. Satu array, yang dipanggil "Pautan", termasuk nama -nama pautan. Arahan lain dipanggil "links_text", dan terdiri daripada teks pautan (mis. Pautan 1). Yang pertama akan digunakan untuk perbandingan terhadap fail ini. Namakan pelbagai elemen dalam array Pautan menggunakan tajuk dari fail pautan, tidak termasuk lanjutan (iaitu jika pautan pertama membawa anda ke index.htm, namakan indeksnya). Arahan ketiga, yang dipanggil "links_url" termasuk URL yang mana pautan akan mengambil pengguna. Sekarang, apa yang kita mahukan ialah membandingkan setiap elemen dalam pautan array ke nama fail halaman semasa tanpa sambungan. Kami kemudian akan memberikan pautan gaya, dan apa jua teks atau imej tambahan yang anda telah memutuskan untuk menambah teks pautan untuk menyerlahkan halaman aktif. Biarkan loc menjadi rentetan perbandingan. loc boleh didapati sebagai: var loc = string (this.location); loc = loc.split ("/"); loc = loc [loc.length-1] .split ("."); loc = loc [loc.length-2]; Oleh itu, jika halaman semasa https://www.sitepoint.com/index.htm maka loc akan menjadi indeks. Sekarang kita membandingkannya dengan setiap elemen dalam pautan array. Unsur pertama array dan LOC ini sama, oleh itu kita menulis pautan ini dengan cara berikut. document.write ('< table onmouseover = "this.classname =' explorer_active '; return true" onmouseout = "this.classname =' explorer_active '; kembali true" onmousedown = "this.classname =' explorer_active '; ''"> ' links_text[i] ' »'); Oleh kerana unsur -unsur lain dalam array pautan tidak sama dengan loc, mereka akan ditulis sebagai: document.write ('< jadual onmouseover = "this.classname =' explorer_over '; kembali benar" onmouseout = "this.classname =' explorer '; links_url [i] '' "> < tr> < td> < a href =" 'links_url [i]' "> 'links_text [i]' < Dan itulah menu dinamik anda! Kod yang perlu anda letakkan di semua halaman anda adalah: < skrip bahasa = "JavaScript" src = "nav.js"> Letakkan kod ini di mana sahaja anda memerlukan menu navigasi untuk muncul di halaman. Kod lain yang anda perlukan adalah < link rel = "stylesheet" href = "links_style.css" /> yang mesti diletakkan di bahagian < kepala> halaman HTML anda. Oleh itu, penyenaraian 1 nav.js adalah: / * butiran pautan * / var pautan = array baru ("link1", "link2", "link3"); var links_text = array baru ("link 1", "link 2", "link 3"); var links_url = array baru ("link1.htm", "link2.htm", "link3.htm"); / * Menyelesaikan lokasi */ var loc = string (this.location); loc = loc.split ("/"); loc = loc [loc.length-1] .split ("."); loc = loc [loc.length-2]; Fungsi penjanaan menu */ fungsi dyn_menu_gen () {untuk (var i = 0; i < links.length; i) {if (loc == pautan [i]) {document.write ('< meja onmouseover = "this.classname =' explorer_active" onmousedown = "this.classname = 'explorer_active'; kembali benar" onclick = "location.href = '' links_url [i] ''"> < tr> < td> < < b> ⠻ '); } else {document.write ('< table onmouseover = "this. className =' explorer_over '; return true" onMouseout = "this.classname =' explorer '; kembali benar" onmousedown = "this.classname =' explorer_down '; '' "> < tr> < td> < a href =" 'links_url [i]' "> 'links_text [i]' < } document.write ('< table cellspacing = "0" cellpadding = "0" bgColor = "#ffffff"> < tr> < td> '); }} / * Menjana menu * / dyn_menu_gen (); Penyenaraian 2, Links_style.css adalah: .explorer {font-family: verdana, arial, helvetica; saiz font: 8pt; Font-Weight: Normal; Teks-penyerapan: Tiada; Warna:#000000; Latar Belakang:#B5D0FF; kursor: tangan; lebar: 150px; Ketinggian: 30px; sempadan: 1 pepejal #a6c0ed} .explorer_over {font-family: verdana, arial, helvetica; saiz font: 8pt; Font-Weight: Normal; Teks-penyerapan: Tiada; Warna:#000000; Latar Belakang:#A7C0EB; kursor: tangan; lebar: 150px; Ketinggian: 30px; Sempadan-kanan: 1 pepejal #5C6980; Sempadan-Bottom: 1 Solid #5C6980; sempadan-kiri: 1 pepejal #b8d3ff; Border-top: 1 pepejal #b8d3ff} .explorer_down {font-family: verdana, arial, helvetica; saiz font: 8pt; Font-Weight: Normal; Teks-penyerapan: Tiada; Warna:#000000; Latar Belakang:#A7C0EB; kursor: tangan; lebar: 150px; Ketinggian: 30px; sempadan-kiri: 1 pepejal #5C6980; Border-top: 1 pepejal #5C6980; Sempadan-kanan: 1 pepejal #b8d3ff; Sempadan-bawah: 1 pepejal #b8d3ff} .explorer_active {font-family: verdana, arial, helvetica; saiz font: 8pt; Font-Weight: Normal; Teks-penyerapan: Tiada; Warna:#000000; Latar Belakang: #FFFFFF; kursor: tangan; lebar: 150px; ketinggian: 30px} .menu {font-family: verdana, arial, helvetica; saiz font: 8pt; Font-Weight: Normal; Teks-penyerapan: Tiada; Warna:#000000} Saya harap skrip ini memudahkan penciptaan navigasi JavaScript dinamik untuk laman web anda!

Soalan -soalan yang sering ditanya mengenai menu dinamik dalam JavaScript

Bagaimana saya boleh menambah submenu ke menu dinamik di JavaScript?

Anda boleh menggunakan kaedah AppendChild () untuk mencapai matlamat ini. Berikut adalah contoh mudah:

var parentmenuitem = document.getElementById ('parentMenuitem'); item menu yang anda mahu tambahkan submenu ke. 'Submenuitem' adalah item submenu baru yang anda tambahkan.

Bagaimana saya boleh mengeluarkan item menu dari menu dinamik di JavaScript?

Kaedah ini menghilangkan nod kanak -kanak tertentu dari elemen yang ditentukan. Berikut adalah contoh:

var menuitem = document.getElementById ('MenuItem');
MenuItem.ParentNode.RemoveChild (Menuitem); Teks item menu dalam menu dinamik di JavaScript boleh dilakukan dengan menggunakan harta InnerHTML. Inilah contoh:

var menuitem = document.getElementById ('MenuItem');
MenuItem.innerHtml = 'Teks item menu baru'; Menu Dinamik dalam JavaScript?

Menambah pendengar acara ke item menu dalam menu dinamik dalam JavaScript boleh dilakukan dengan menggunakan kaedah AddEventListener (). Kaedah ini melampirkan pengendali acara ke elemen yang ditentukan. Inilah contoh:

var menuitem = document.getElementById ('MenuItem'); Pendengar acara akan memaparkan amaran apabila item menu diklik. Harta ini menetapkan atau mengembalikan sifat gaya elemen. Inilah contoh:

var menuitem = document.getElementById ('MenuItem');
menuItem.style.color = 'merah';
menuitem.style.fontsize = '20px'; Harta gaya digunakan untuk menukar saiz warna dan fon item menu.

Bagaimana saya boleh membuat menu dinamik dalam JavaScript menggunakan array?

Berikut adalah contoh:

var menuitems = ['home', 'about', 'contact'];
var menu = document.getElementById ('menu');

untuk (var i = 0; i < MenuItems [i];
menu.AppendChild (MenuItem);
}
Data JSON melibatkan menghuraikan data JSON dan membuat item menu baru untuk setiap objek dalam data parsed. Inilah contoh:

var jsondata = '[{"text": "home"}, {"text": "about"}, {"text": "contact"}]';
var menuitems = json.parse (jsondata); < Untuk menambah item menu ke.

Bagaimana saya boleh membuat menu dinamik dalam JavaScript menggunakan data dari pelayan?

Membuat menu dinamik dalam JavaScript menggunakan data dari pelayan melibatkan membuat permintaan AJAX ke pelayan untuk mendapatkan data, dan kemudian membuat item menu baru untuk setiap data yang dikembalikan oleh pelayan yang dikembalikan oleh pelayan yang dikembalikan oleh pelayan yang dikembalikan oleh pelayan yang dikembalikan oleh pelayan yang dikembalikan oleh pelayan. Berikut adalah contoh menggunakan API API:

mengambil ('https://example.com/MenuiteMs')
.THEN (response => response.json ())
. {
var menuitem = document.createeelement ('li');

Bagaimana saya boleh membuat menu dropdown dinamik di JavaScript?

Mewujudkan menu dropdown dinamik dalam JavaScript melibatkan membuat elemen pilih baru dan menambah elemen pilihan untuk setiap item menu. Berikut adalah contoh:

var menuitems = ['home', 'about', 'contact'];
var dropdownMenu = document.createeLement ('pilih');


untuk (var i = 0; i < MenuItems [i];
option.text = menuItems [i];
dropdownmenu.appendchild (option);
}

document.body.appendchild (dropdownMenu); > Mewujudkan menu konteks dinamik dalam JavaScript melibatkan membuat elemen menu baru dan menambah item menu kepadanya, dan kemudian memaparkan menu pada kedudukan tetikus apabila butang tetikus kanan diklik. Berikut adalah contoh:

var menuitems = ['cut', 'copy', 'paste'];
var contextMenu = document.createelement ('ul');
contextmenu.style.display = 'none'; {
var menuitem = document.createeelement ('li');
menuitem.innerHtml = menuitems [i];
contextMenu.appendchild (menuItem); e.preventDefault ();
contextMenu.style.left = e.pagex 'px';
contextMenu.style.top = e.pagey 'px'; = 'tiada';
});
Dalam contoh ini, 'MenuItems' adalah pelbagai teks item menu konteks.

Atas ialah kandungan terperinci Bina menu dinamik dalam artikel JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan