jQuery là thư viện JavaScript phổ biến nhất hiện nay, việc nắm vững jQuery sẽ giúp các bạn vững vàng hơn cho việc thiết kế web cũng như trở thành Front End Developer sau này. Và cách học tốt nhất không phải là cặm cụi đọc sách mà chính là thực hành càng nhiều càng tốt.
Hôm nay mình sẽ chia sẻ cho các bạn một đoạn jQuery nhỏ thôi, nhưng nó sẽ giúp các bạn hiểu thêm về nó cũng như có thêm một chức năng nhỏ mà hầu như website nào cũng cần đến, đó là tạo các tab hiển thị nội dung.
HTML
Trước hết chúng ta sẽ tạo các tab bằng phần tử <ul> như sau :
<ul class="tabs">
<li class="active" rel="tab1"> Call of Duty</li>
<li rel="tab2"> Mortal Combat</li>
<li rel="tab3"> Halo</li>
<li rel="tab4"> Portal</li>
</ul>
Kế tiếp là nội dung cho các thẻ tab
<div class="tab_container">
<div class="tab_content" id="tab1">
<img alt="" src="images/cod.jpg" />
<strong>
Call of Duty: Black Ops bears the series' standard superbly,
delivering an engrossing campaign and exciting competitive multiplayer.
</strong></div>
<!-- #tab1 -->
<div class="tab_content" id="tab2">
<img alt="" src="images/mortal combat.jpg" />
<strong>
Mortal Kombat returns after a lengthy hiatus and puts players
back into the Tournament for 2D fighting with gruesome combat.
</strong></div>
<!-- #tab2 -->
<div class="tab_content" id="tab3">
<img alt="" src="images/halo.jpg" />
<strong>
Halo: Reach is the culmination of the superlative combat, sensational
multiplayer, and seamless online integration that are the hallmarks
of this superb series.
</strong></div>
<!-- #tab3 -->
<div class="tab_content" id="tab4">
<img alt="" src="images/portal.jpg" />
<strong>
Portal 2 is an action shooter game from Valve Software that draws
from the original formula of innovative gameplay, story, and music,
which earned the original Portal more than 70 industry accolades.
</strong></div>
<!-- #tab4 --></div>
<pre>
<!-- .tab_container -->
CSS
Bây giờ chúng ta sẽ định dạng lại các tab bằng CSS sao cho dễ nhìn , chúng ta sẽ định dạng đơn giản như sau :
ul.tabs {
margin: 0;
padding: 0;
float: left;
list-style: none;
height: 32px;
border-bottom: 1px solid #999999;
border-left: 1px solid #999999;
width: 100%;
}
ul.tabs li {
float: left;
margin: 0;
cursor: pointer;
padding: 0px 21px ;
height: 31px;
line-height: 31px;
border: 1px solid #999999;
border-left: none;
font-weight: bold;
background: #EEEEEE;
overflow: hidden;
position: relative;
}
ul.tabs li:hover {
background: #CCCCCC;
}
ul.tabs li.active{
background: #FFFFFF;
border-bottom: 1px solid #FFFFFF;
}
.tab_container {
border: 1px solid #999999;
border-top: none;
clear: both;
float: left;
width: 100%;
background: #FFFFFF;
}
.tab_content {
padding: 20px;
font-size: 1.2em;
display: none;
}
#container {
width: 600px;
margin: 0 auto;
}
jQuery
Để tab có thể hoạt động, các bạn cần chèn đoạn jQuery sau :
$(document).ready(function() {
// ẩn tất cả các thẻ div với class="tab_content".
$(".tab_content").hide();
// Mặc định nội dung thẻ tab đầu tiên sẽ được hiển thị
$(".tab_content:first").show();
$("ul.tabs li").click(function() {
// gỡ bỏ class="active" cho tất cả các thẻ
$("ul.tabs li").removeClass("active");
// chèn class="active" vào phần tử </li> vừa được click
$(this).addClass("active");
// ẩn tất cả thẻ với class="tab_content"
$(".tab_content").hide();
//Hiển thị nội dung thẻ tab được click với hiệu ứng Fade In
var activeTab = $(this).attr("rel");
$("#"+activeTab).fadeIn();
});
});
Trong đoạn code bên trên mình đã chú thích cho từng câu lệnh,nếu bạn nào vẫn chưa hiểu thì đừng ngần ngại để lại lời nhắn dưới dạng comments, mình sẽ giải thích kỹ hơn. Mình mong rằng với bài viết ngắn này, các bạn mới bắt đầu tìm hiểu về jQuery sẽ có thêm kinh nghiệm trong việc sử dụng và code bằng jQuery.