Ketika sebaris kode tak berhenti menatap dan tampak naksir kepada Anda.

Lebar dan Tinggi Elemen Dinamis berdasarkan Perubahan Ukuran Layar


Set Ukuran Lebar dan Tinggi Elemen secara Dinamis berdasarkan Ukuran Layar

Mengeset ukuran lebar dan tinggi elemen sesuai dengan ukuran layar memang mudah, namun menciptakan 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 disesuaikan dengan jumlah elemen dan beberapa pembagian yang telah ditentukan untuk menciptakan kolom-kolom yang tepat.
Di sini Saya akan menunjukkan bagaimana cara Melissa Hie menciptakan kolom-kolom dengan ukuran yang cukup proporsional dengan lebar dan tinggi layar browser. Meskipun ia bilang bahwa situs yang ia buat diciptakan dengan Motools, tapi Saya bisa membuat konsep tipografinya dengan JQuery. Yang kita butuhkan pada dasarnya 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 bisa digeser dengan scrollbar seperti 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 agar 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,
        // karena 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 menu yang diklik
    $('ul#nav a').click(function() {
       $('ul#nav a.active').removeClass('active');
       $(this).addClass('active');
    });
});

Ini baru dasarnya saja, yaitu tentang bagaimana cara mengeset ukuran lebar dan tinggi elemen berdasarkan ukuran layar. Untuk selanjutnya, efek smooth scrolling bisa dibuat dengan menerapkan plugin JQuery scrollTo:

  

Berlangganan

Berlangganan posting: Daftarkan alamat email Anda untuk memperoleh umpan posting terbaru langsung ke kotak masuk pesan.

 10 Komentar

Memuat…

Tautan (link) hidup dalam komentar akan terhapus secara otomatis.
Untuk menyisipkan tautan dengan aman, gunakan kode [url=http://example.com]Teks Tautan[/url]
Untuk menyisipkan kode, gunakan tag <i rel="code">KODE ANDA</i>
Kode yang panjang bisa menggunakan tag <i rel="pre">KODE PANJANG ANDA</i>
Untuk menyisipkan gambar, gunakan kode [img]URL GAMBAR[/img]
Untuk menyisipkan judul, gunakan tag <b rel="h4">JUDUL ANDA DI SINI...</b>
Untuk menciptakan efek tebal gunakan tag <strong>TEKS ANDA DI SINI...</strong>
Untuk menciptakan efek huruf miring gunakan tag <em>TEKS ANDA DI SINI...</em>

Khusus untuk membalas komentar disarankan menggunakan tombol balas di samping komentar terkait dibandingkan menggunakan formulir komentar di bawah agar komunikasi lebih terstruktur. Karena mungkin, apa yang Anda tanyakan/katakan saat ini akan sangat bermanfaat bagi pembaca lain.

:) :( ^_^ :D ;) :-bd :'( :\ :p B) :Q :Ozz 7:( \o/ **p <3 0:) :-a 7:O *fck* x@ X@ ~x( :yaya: =p*

Nama Saya Taufik Nurrohman. Sebenarnya Saya tidak bisa disebut sebagai seorang yang profesional dalam bidang ini, karena Saya tidak menguasai bidang ini melalui pendidikan formal. Saya hanyalah seorang antusias. Dibandingkan sebagai seorang desainer atau pengembang, Saya lebih suka jika disebut sebagai seorang hobiis saja yang tertarik dengan dunia web.

Daftar Tautan

Komunitas

Saya tidak bisa hidup tanpa JavaScript! Aktifkan JavaScript?
Info
  1. http://www.dte.web.id/2013/12/daftar-salinan-berkas-widget-halaman.html
  2. http://www.dte.web.id/2013/02/hosting-file-dengan-google-code-dan.html
Tutup
Ke atas!