Tạo Tab hiển thị nội dung với CSS & jQuery

23/02/2014

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.

tao-tab-hien-thi-noi-dung-voi-css-jquery

Xem Demo | Download

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">Call of Duty</li>
	<li>Mortal Combat</li>
	<li>Halo</li>
	<li>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.

Tags:

Chuyên Mục:

Bài viết được đăng bởi webmaster

Nếu các bạn thấy bài viết hữu ích thì giúp mình Like cái nhé !
  • anh

    Tạo Tab hiển thị nội dung với CSS & jQuery
    huong dan chi tiet ti ban
    dat no o dau trong WordPress