Di artikel ini, kita akan belajar cara membuat list berganti warna menggunakan elemen HTML input radio.
Tujuan Program
Tujuan Program |
Tujuan dari program ini adalah untuk membuat HTML List yang warna text dan
warna hover bisa di ubah menggunakan sebuah Input Radio. Contohnya akhirnya
seperti gambar dibawah ini:
Warna List Text |
Warna List Text ketika di hover |
Source Code
Source code program ini bisa dilihat di Repository berikut: Source Code Mini Project
Github Repository: Main Repository
Github Repository: Main Repository
Kalian bisa mencoba program ini secara online dengan mengakses link berikut: Github Pages
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Mini Project 1</title> </head> <body> <ul> <li>Manggis</li> <li>Mangga</li> <li>Alpukat</li> <li>Sirsak</li> <li>Durian</li> <li>Rambutan</li> </ul> <hr> <span style="font-size: 4vh;"><b>Warna Text</b></span> <form id="warnaText" onchange="textColor()"> <input type="radio" name="clr" id="textBiru-Btn"> <label>Biru</label> <input type="radio" name="clr" id="textHijau-Btn"> <label>Hijau</label> <input type="radio" name="clr" id="textKuning-Btn"> <label>Kuning</label> <input type="radio" name="clr" checked> <label>Default</label> </form> <br> <span style="font-size: 4vh;"><b>Warna Hover</b></span> <form id="warnaHover" onchange="hoverColor()"> <input type="radio" name="clr" id="hoverMerah-Btn"> <label>Merah</label> <input type="radio" name="clr" id="hoverCokelat-Btn"> <label>Cokelat</label> <input type="radio" name="clr" id="hoverPink-Btn"> <label>Pink</label> <input type="radio" name="clr" checked> <label>Default</label> </form> <script> // simpan list let list = document.getElementsByTagName("li"); // simpan elemen text let textBiru = document.getElementById("textBiru-Btn"); let textHijau = document.getElementById("textHijau-Btn"); let textKuning = document.getElementById("textKuning-Btn"); // simpan elemen hover let hoverMerah = document.getElementById("hoverMerah-Btn"); let hoverCokelat = document.getElementById("hoverCokelat-Btn"); let hoverPink = document.getElementById("hoverPink-Btn"); function textColor() { for (let i = 0; i < list.length; i++) { if (textBiru.checked) { list[i].style.color = "blue"; } else if (textHijau.checked) { list[i].style.color = "green"; } else if (textKuning.checked) { list[i].style.color = "yellow"; } else { list[i].style.color = ""; } } } function hoverColor() { for (let i = 0; i < list.length; i++) { list[i].onmouseover = function() { if (hoverMerah.checked) { list[i].style.color = "red"; } else if (hoverCokelat.checked) { list[i].style.color = "brown"; } else if (hoverPink.checked) { list[i].style.color = "pink"; } } list[i].onmouseout = function() { textColor(); } } } </script> </body> </html>
Pembahasan
1. Buat Elemen HTML List
Tambahkan unordered list ke dalam HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Mini Project</title> </head> <body> <ul> <li>Manggis</li> <li>Mangga</li> <li>Alpukat</li> <li>Sirsak</li> <li>Durian</li> <li>Rambutan</li> </ul> </body> </html>
2. Buat elemen HTML form untuk menampung input radio
Buat input elemen dengan tipe
radio, kemudian taruh di dalam
elemen form. Fungsinya agar bisa
menggunakan event
onchange nantinya. Jangan lupa
tambahkan id untuk setiap elemen agar bisa dipanngil dalam Javascript.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Mini Project</title> </head> <body> <ul> <li>Manggis</li> <li>Mangga</li> <li>Alpukat</li> <li>Sirsak</li> <li>Durian</li> <li>Rambutan</li> </ul> <hr> <span><b>Warna Text</b></span> <form id="warnaText"> <input type="radio" name="clr" id="textBiru-Btn"> <label>Biru</label> <input type="radio" name="clr" id="textHijau-Btn"> <label>Hijau</label> <input type="radio" name="clr" id="textKuning-Btn"> <label>Kuning</label> <input type="radio" name="clr" checked> <label>Default</label> </form> <br> <span><b>Warna Hover</b></span> <form id="warnaHover"> <input type="radio" name="clr" id="hoverMerah-Btn"> <label>Merah</label> <input type="radio" name="clr" id="hoverCokelat-Btn"> <label>Cokelat</label> <input type="radio" name="clr" id="hoverPink-Btn"> <label>Pink</label> <input type="radio" name="clr" checked> <label>Default</label> </form> </body> </html>
3. Tambahkan Javascript
Tambahkan elemen script and
isi dengan kode Javascript.
<script> // simpan list let list = document.getElementsByTagName("li"); // simpan elemen text let textBiru = document.getElementById("textBiru-Btn"); let textHijau = document.getElementById("textHijau-Btn"); let textKuning = document.getElementById("textKuning-Btn"); // simpan elemen hover let hoverMerah = document.getElementById("hoverMerah-Btn"); let hoverCokelat = document.getElementById("hoverCokelat-Btn"); let hoverPink = document.getElementById("hoverPink-Btn"); function textColor() { for (let i = 0; i < list.length; i++) { if (textBiru.checked) { list[i].style.color = "blue"; } else if (textHijau.checked) { list[i].style.color = "green"; } else if (textKuning.checked) { list[i].style.color = "yellow"; } else { list[i].style.color = ""; } } } function hoverColor() { for (let i = 0; i < list.length; i++) { list[i].onmouseover = function() { if (hoverMerah.checked) { list[i].style.color = "red"; } else if (hoverCokelat.checked) { list[i].style.color = "brown"; } else if (hoverPink.checked) { list[i].style.color = "pink"; } } list[i].onmouseout = function() { textColor(); } } } </script>
Pembahasan Kode Javascript
1. Dapatkan id elemen HTML
Ambil id yang ada di HTML menggunakan
document.getElementById() dan document.getElementsByTagName(). Simpan di dalam variabel.
// simpan list let list = document.getElementsByTagName("li"); // simpan elemen text let textBiru = document.getElementById("textBiru-Btn"); let textHijau = document.getElementById("textHijau-Btn"); let textKuning = document.getElementById("textKuning-Btn"); // simpan elemen hover let hoverMerah = document.getElementById("hoverMerah-Btn"); let hoverCokelat = document.getElementById("hoverCokelat-Btn"); let hoverPink = document.getElementById("hoverPink-Btn");
Buat function dengan nama textColor(). Gunakan for loop untuk melakukan iterasi di variabel list (variabel list merupakan Array dari elemen li). Method .checked digunakan untuk mengecek apakah input radio ter-check oleh pengguna. Bila input radio ter-check, akan menghasilkan output true, jika tidak false. Gunakan percabangan if-else untuk mengatur input radio mana yang ter-check dan ubah warna setiap elemen list.
function textColor() { for (let i = 0; i < list.length; i++) { if (textBiru.checked) { list[i].style.color = "blue"; } else if (textHijau.checked) { list[i].style.color = "green"; } else if (textKuning.checked) { list[i].style.color = "yellow"; } else { list[i].style.color = ""; } } }
Buat function dengan nama hoverColor(). Struktur hampir sama dengan function textColor(), bedanya warna akan diberikan jika mouse berada di elemen list (.onmouseover). Jika mouse di luar elemen list (.onmouseout), jalankan function textColor() untuk mengembalikan warna list ke semula.
function hoverColor() { for (let i = 0; i < list.length; i++) { list[i].onmouseover = function() { if (hoverMerah.checked) { list[i].style.color = "red"; } else if (hoverCokelat.checked) { list[i].style.color = "brown"; } else if (hoverPink.checked) { list[i].style.color = "pink"; } } list[i].onmouseout = function() { textColor(); } } }
4. Jangan lupa tambahkan event onchange pada elemen HTML form
<span style="font-size: 4vh;"><b>Warna Text</b></span> <form id="warnaText" onchange="textColor()"> .... </form> <br> <span style="font-size: 4vh;"><b>Warna Hover</b></span> <form id="warnaHover" onchange="hoverColor()"> ... </form>
End
Jika sudah, kalian bisa mencoba program tersebut dengan mengakses laman ini.
0 Komentar