Powered by Blogger.
 
 
Sunday, 8 February 2015

Cara Membuat Navigasi Tab

Navigasi tab elemen, Anda sering bertemu dalam browsing harian Anda. Ada begitu banyak cara, begitu banyak gaya, tetapi gagasan adalah sama: Anda mengklik tab dan melihat isinya tanpa refresh halaman.
Dalam artikel ini Anda akan belajar bagaimana membangun beberapa CSS3 & jQuery baru tab terinspirasi oleh desain Google Play. 



HTML

Kembali ke tutorial ini, inilah markup, sederhana seperti biasa. Anda mungkin melihat kesamaan antara atribut nama jangkar dan id blok konten yang terkait itu. Selanjutnya, ini akan menjadi kait kami.

Code

<ul id="tabs">
    <li><a href="#" name="#tab1">One</a></li>
    <li><a href="#" name="#tab2">Two</a></li>
    <li><a href="#" name="#tab3">Three</a></li>
    <li><a href="#" name="#tab4">Four</a></li>  
</ul>
<div id="content">
    <div id="tab1">...</div>
    <div id="tab2">...</div>
    <div id="tab3">...</div>
    <div id="tab4">...</div>
</div>

CSS

Yang Tujuannya di sini, seperti biasa, adalah untuk melakukannya tanpa menggunakan gambar apapun dan dengan sedikit CSS mungkin. Itu saja, ini bukan hanya sepotong CSS, itu seluruh CSS yang digunakan untuk membuat tab ini. Saya pikir itu cukup keren, bahkan pseudo-elemen yang digunakan di sini, hanya CSS perbatasan.

Code

<style>
/* ------------------------------------------------- */
#tabs {
 overflow: hidden;
 width: 100%;
 margin: 0;
 padding: 0;
 list-style: none;
  }
#tabs li {
 float: left;
 margin: 0 -15px 0 0;
  }
#tabs a {
 float: left;
 position: relative;
 padding: 0 40px;
 height: 0;
 line-height: 30px;
 text-transform: uppercase;
 text-decoration: none;
 color: #fff;    
 border-right: 30px solid transparent;
 border-bottom: 30px solid #3D3D3D;
 border-bottom-color: #777\9;
 opacity: .3;
 filter: alpha(opacity=30);    
}
#tabs a:hover,
#tabs a:focus {
 border-bottom-color: #2ac7e1;
 opacity: 1;
 filter: alpha(opacity=100);
}
#tabs a:focus {
 outline: 0;
}
#tabs #current {
 z-index: 3;
 border-bottom-color: #3d3d3d;
 opacity: 1;
 filter: alpha(opacity=100);    
}
/* ------------------------------------------------- */
#content {
 background: #fff;
 border-top: 2px solid #3d3d3d;
 padding: 0em;
 /*height: 220px;*/
}
#content h2,
#content h3,
#content p {
 margin: 0 0 15px 0;
}
#tab1 {
 background: orange;
}
#tab2 {
 background: green;
}
#tab3 {
 background: yellow;
}
#tab4 {
background: blue;
}
</style>

JQuery

Dibandingkan dengan pasal tab saya sebelumnya, kali ini saya pikir saya membaik sedikit kode jQuery. Juga, kali ini Anda memiliki kemungkinan untuk mengakses tab langsung oleh URL, misalnya mywebsite.com/tabs.html#tab2.

Code

  <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
  <script>
    function resetTabs(){
        $("#content > div").hide(); //Hide all content
        $("#tabs a").attr("id",""); //Reset id's    
    }

    var myUrl = window.location.href; //get URL
    var myUrlTab = myUrl.substring(myUrl.indexOf("#")); // For localhost/tabs.html#tab2, myUrlTab = #tab2  
    var myUrlTabName = myUrlTab.substring(0,4); // For the above example, myUrlTabName = #tab

    (function(){
        $("#content > div").hide(); // Initially hide all content
        $("#tabs li:first a").attr("id","current"); // Activate first tab
        $("#content > div:first").fadeIn(); // Show first tab content
     
        $("#tabs a").on("click",function(e) {
            e.preventDefault();
            if ($(this).attr("id") == "current"){ //detection for current tab
             return    
            }
            else{          
            resetTabs();
            $(this).attr("id","current"); // Activate this
            $($(this).attr('name')).fadeIn(); // Show content for current tab
            }
        });

        for (i = 1; i <= $("#tabs li").length; i++) {
          if (myUrlTab == myUrlTabName + i) {
              resetTabs();
              $("a[name='"+myUrlTab+"']").attr("id","current"); // Activate url tab
              $(myUrlTab).fadeIn(); // Show url tab content      
          }
        }
    })()
  </script>

Pada akhirnya ... akan terjadi seperti di bawah ini :

Lorem ipsum sit amet

Praesent risus nisi, iaculis nec condimentum vel, rhoncus vel dolor. Aenean nisi lectus, varius nec tempus id, dapibus non quam.
Suspendisse ac libero mauris. Cras lacinia porttitor urna, vitae molestie libero posuere et. Mauris turpis tortor, mollis non vulputate sit amet, rhoncus vitae purus.

Pellentesque habitant

Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae.

Vivamus fringilla suscipit justo

Aenean dui nulla, egestas sit amet auctor vitae, facilisis id odio. Donec dictum gravida feugiat.
Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras pretium elit et erat condimentum et volutpat lorem vehicula
Morbi tincidunt pharetra orci commodo molestie. Praesent ut leo nec dolor tempor eleifend.

Phasellus non nibh

Non erat laoreet ullamcorper. Pellentesque magna metus, feugiat eu elementum sit amet, cursus sed diam. Curabitur posuere porttitor lorem, eu malesuada tortor faucibus sed.

Duis pulvinar nibh vel urna

Donec purus leo, porttitor eu molestie quis, porttitor sit amet ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec accumsan ornare elit id imperdiet.
Suspendisse ac libero mauris. Cras lacinia porttitor urna, vitae molestie libero posuere et.

Cum sociis natoque penatibus

Magnis dis parturient montes, nascetur ridiculus mus. Nullam ac massa quis nisi porta mollis venenatis sit amet urna. Ut in mauris velit, sed bibendum turpis.
Nam ornare vulputate risus, id volutpat elit porttitor non. In consequat nisi vel lectus dapibus sodales. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Praesent bibendum sagittis libero.

Imperdiet sem interdum nec

Mauris rhoncus tincidunt libero quis fringilla.

Teknik ini memiliki kelemahan kecil, tab tidak berperilaku sebagaimana mestinya jika Anda menggunakan IE6. Tapi, dengan izin Anda, saya akan mengatakan kita bisa melewatkan IE6 saat ini. Namun, jika Anda benar-benar ingin degradasi anggun untuk IE6, hal itu dapat dilakukan dengan beberapa target spesifik. Mungkin aku akan melakukannya di masa depan, atau mungkin tidak :)

Aku tak sabar untuk membaca komentar Anda, harap Anda menikmati ini. Terima kasih untuk membacanya!

0 komentar:

Post a Comment

Updates Via E-Mail

subcribe rss feed subcribe rss feed subcribe rss feed subcribe rss feed
 
© Copyright 2012 All Rights Reserved
Design by : bfourty