选项卡切换是在网页制作中经常会使用到的一个效果。它的实现方法也有很多种,但是对于一个还没有来得及掌握javascript的制作者来说,实现起来就没有那么简单了。

今天就基于易学易用的jQuery来做一个选项卡切换效果,很简单哦。

原理

css:为html元素设置不同的类,利用display属性控制元素是否显示。

html:选项卡和内容数量相等且一一对应。

jquery:根据鼠标动作获取到被选中的选项卡;改变当前选项卡的类,使其显示;改变其它选项卡的类,使其显示未选中;获取当前选项卡在父元素中的顺序并找到对应的内容容器;改变此对应内容容器的类,使其显示;改变其它内容容器的类,使其隐藏。

html结构

<div class="title_box clearfix"> //水平方向的两个选项卡
	<h3 class="now_focus">第一个选项卡,默认选中</h3>
	<h3>第二个选项卡,默认不选中</h3>
</div>
<div class="con_box"> //两个内容容器
	<div class="now_focus clearfix">第一个容器,默认显示</div>
	<div>第二个容器,默认不显示</div>
</div>

CSS样式

<style type="text/css">
.title_box {}
.title_box h3 {float:left; width:100px; height:30px; line-height:30px; text-align:center; margin-right:5px; background:#000; color:#fff; cursor:pointer; font-weight:normal;}
.title_box h3.now_focus {background:#fff; color:#000; font-weight:bold;}
.con_box {}
.con_box div {display:none; padding:30px; background:#fff;} //默认不显示
.con_box div.now_focus {display:block;} //使用display属性,父元素的高度将受当前显示元素高度的影响
</style>

jQuery代码

<script type="text/javascript">
$(document).ready(function() {
	$(".title_box h3").click(function() {
		$(this).addClass("now_focus"); //为被点击的选项卡添加“now_focus”类
		$(this).siblings().removeClass("now_focus"); //去掉其它选项卡的“now_focus”类
		var $dangqian = $(".con_box > div").eq($(".title_box h3").index(this)); //获取到和被点击选项卡顺序相同的内容容器
		$dangqian.addClass("now_focus"); //为这个内容容器添加“now_focus”类
		$dangqian.siblings().removeClass("now_focus"); //去掉其它内容容器的“now_focus”类
	});
});
</script>

查看演示页面

本着简单、易懂的原则,本例只实现了最基础的效果,利用css可以做出更加漂亮的选项卡切换。在演示页面中提供了一个垂直方向的选项卡切换实例以便参考,方法和本例一样,只是css样式不同而已。本例使用的是jquery 1.6.0。

以上内容根据个人经验总结,如有错误还请多多指正。欢迎一起交流、学习网页制作相关知识。

54173BLOG原创内容,本文链接:http://www.54173.cn/blog/?p=442,转载请务必保留。