Set Ukuran Lebar dan Tinggi Elemen secara Dinamis menurut Ukuran Layar
Mengeset ukuran lebar dan tinggi elemen sesuai dengan ukuran layar memang mudah, namun membuat ukuran elemen berjumlah banyak dengan ukuran lebar dan tinggi masing-masing yang sama dengan layar tidak akan semudah itu. Kita membutuhkan elemen pembungkus dengan ukuran yang diubahsuaikan dengan jumlah elemen dan beberapa pembagian yang telah ditentukan untuk membuat kolom-kolom yang tepat.
Di sini Saya akan menawarkan bagaimana cara Melissa Hie membuat kolom-kolom dengan ukuran yang cukup proporsional dengan lebar dan tinggi layar browser. Meskipun dia bilang bahwa situs yang dia buat diciptakan dengan Motools, tapi Saya dapat membuat konsep tipografinya dengan jQuery. Yang kita butuhkan intinya hanyalah mengambil data lebar dan tinggi layar, serta jumlah elemen .box
untuk kalkulasi ukuran #wrap
:
HTML
<div id='wrap'> <div class='box' id='home'> <h3>Home</h3> </div> <div class='box' id='contact'> <h3>Contact</h3> </div> <div class='box' id='fun'> <h3>For Fun</h3> </div> <div class='box' id='about'> <h3>About</h3> </div> <div class='box' id='website'> <h3>Website</h3> </div> <div class='box' id='skill'> <h3>Skills</h3> </div> </div> <ul id='nav'> <li><a class='active' href='#home'>Home</a></li> <li><a href='#website'>Website</a></li> <li><a href='#fun'>For Fun</a></li> <li><a href='#about'>About</a></li> <li><a href='#skill'>Skills</a></li> <li><a href='#contact'>Contact</a></li> </ul>
CSS
#wrap { position:absolute; top:0px; left:0px; } h3 { margin:70px 30px; font:normal 22px Arial,Sans-Serif; color:#fff; color:rgba(255,255,255,0.7); } .box { width:50%; height:50%; float:left; background-color:#ccc; } #home {background-color:#2f2f2f;} #website {background-color:#00A7E2;} #fun {background-color:#EE9A10;} #about {background-color:#DD1F8E;} #skill {background-color:#620294;} #contact {background-color:#84C922;} ul#nav { width:100%; height:30px; background:#000; position:fixed; top:0px; left:0px; } ul#nav li { display:inline; float:left; } ul#nav li a { font:bold 10px Arial,Sans-Serif; text-decoration:none; color:#999; display:block; padding:8px 15px; } ul#nav li a:hover, ul#nav li a.active { color:#fff; }
jQuery
$(function() { // Hilangkan scrollbar dengan jQuery. // Jika jQuery gagal terpanggil, halaman masih dapat digeser dengan scrollbar ibarat biasa $('html, body').css('overflow', 'hidden'); function updateSize() { var winWidth = $(window).width(), // Ambil data lebar layar winHeight = $(window).height(), // Ambil data tinggi layar wrapSum = $('.box').siblings().length; // Hitung semua elemen .box (hasilnya: wrapSum=6) // Set ukuran .box biar sama dengan ukuran layar $('.box').css({ width:winWidth, height:winHeight }); // Set lebar #wrap sebesar tiga kali lebar .box (tiga kali lebar layar) dan tinggi sebesar dua kali tinggi .box (dua kali tinggi layar) // Saya membaginya jumlahnya (wrapSum) menjadi dua dan tiga, // alasannya Saya ingin hanya ada tiga .box dalam satu baris dan dua .box dalam satu kolom $('#wrap').css({ width:winWidth*(wrapSum/2), height:winHeight*(wrapSum/3) }); } // Jalankan fungsi secara default updateSize(); $(window).resize(function() { // Saat ukuran layar diubah, jalankan fungsi kembali // untuk memastikan bahwa ukuran elemen akan terus ter-update/diperbaharui updateSize(); }); // Menambahkan class 'active' pada sajian yang diklik $('ul#nav a').click(function() { $('ul#nav a.active').removeClass('active'); $(this).addClass('active'); }); });
Ini gres dasarnya saja, ialah ihwal bagaimana cara mengeset ukuran lebar dan tinggi elemen menurut ukuran layar. Untuk selanjutnya, dampak smooth scrolling dapat dibentuk dengan menerapkan plugin jQuery scrollTo:
Sumber https://www.dte.web.id/