`
happysoul
  • 浏览: 403620 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

翻出以前做的一个仿163Tab切换功能的简单代码

阅读更多
最近改网站需要用标签切换,懒得再写了就翻出了以前的代码,里面还有很多地方还是可以优化的,暂时就先不改动了



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>仿163 tab</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script>
$(document).ready(function() {
	
	function tab(o1,o2,c,e){
		$(o1).each(function(i){
			$(this).bind(e,function(){
				$(o2).hide("").eq(i).show();
				$(o1).each(function(){
					$(this).removeClass(c);
				});
				$(this).addClass(c);
			})
			if ($(this).hasClass(c)) {
				$(this).addClass(c);
				$(o2).hide().eq(i).show();
			}
		})
	}
	tab(".d_t",".b","on","mouseover");
});
</script>
<style>
html body 	{margin:0px; padding:0px; font-size:12px;}
u		{display: block;overflow: hidden;height: 1px; border-color:#77a;} 
.u1		{margin:0px 3px; background-color:#77a;}
.u2		{margin:0px 1px; border-left:2px solid; border-right:2px solid;}
.u3		{margin:0px 1px; border-left:1px solid; border-right:1px solid;}

.d_body	{margin:50px;width:400px; height:400px;}
.d_top	{height:40px; border-left:1px solid #77a; border-right:1px solid #77a;}
.d_t	{float:left; margin-top:7px; margin-left:10px; border:1px solid #77a; width:100px; height:31px; line-height:31px; background-color:#eee;}
.d_t a	{color:#555; text-decoration:none;}
.d_t a:hover	{color:#933; text-decoration:underline; font-weight:bold; }

.d_main	{border:1px solid #77a; border-top:0px; height:300px;}
.ln		{position:relative; border-bottom:1px solid #77a; top:40px; z-index:-1;}

.b		{background-color:#fff; height:100%; display:none; margin:10px;}
.on		{border-bottom:1px solid #fff; background-color:#fff;}


.fl		{float:left;}
.clr	{clear:both;}
.of		{overflow:hidden;}
.textcenter{text-align:center;vertical-align:middle;}
</style>

</head>
<body>
	<div class="d_body">
		<u class="u1"></u><u class="u2"></u><u class="u3"></u>
		<div class="d_top">
			<div class="ln"></div>
			<div class="d_t textcenter on">
				<a href="javascript:">第一个标签</a>
			</div>
			<div class="d_t textcenter">
				<a href="javascript:">第二个标签</a>
			</div>
			<div class="d_t textcenter">
				<a href="javascript:">第三个标签</a>
			</div>
		</div>
		<div class="d_main clr of">
			<div class="b"><font color="blue">第一个内容</font></div>
			<div class="b"><font color="red">第二个内容</font></div>
			<div class="b"><font color="black">第三个内容</font></div>
		</div>
		<div class="clr of"></div>
	</div>
</body>
</html>


当然这里的代码仅仅是个例子,使用了jquery,也许很多用过的人都会觉得没什么,不过参考了163的设计思路将通用方法封装成函数还是比较方便的
这里因为只有一个,所以对于一个页面里面多个这样功能的需要简单修改,
就是在 tab(".d_t",".b","on","mouseover")这个调用的函数里面对应增加一层
比如 .d_t这个样式外面增加一个 d1这样的一个div层,传入的样式就是 ".d1 .d_t"
这里面前两个是传入jquery选择器的样式代码,当然也可以是id 比如某个div的id是d1
传入的样式就改成 "#d1 .d_t"

其实最好的还是应该将$(".d_t")这样的jquery对象作为参数传入
如下面的例子,比较建议没有进行过多的样式美化,目的都是为了去掉类似id一样的限制,比如必须指定某个选框必须叫 d1 d2,而且换也只能针对 d1 d2,另外再有的时候又需要指定e1 e2 之类的代码




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
<style>
.a	{background-color:#eee; width:20px; cursor:pointer; float:left; margin-left:10px; text-align:center;}
.b	{background-color:#eae; width:250px; height:250px; display:none; font-size:50px;}
.c li{float:left;background-color:#eee; width:20px; cursor:pointer; float:left; margin-left:10px; text-align:center;}
.d	{background-color:#eae; width:250px; height:250px; display:none; font-size:50px;}
.on	{background-color:#c21; width:30px; border:5px solid red; border-bottom:0px; border-top:0px;}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script>
$(document).ready(function() {
	
	function tab2(o1,o2,c,e){
		o1.each(function(i){
			$(this).bind(e,function(){
				o2.hide().eq(i).show();
				o1.each(function(){
					$(this).removeClass(c);
				});
				$(this).addClass(c);
			})
			if ($(this).hasClass(c)) {
				$(this).addClass(c);
				o2.hide().eq(i).show();
			}
		})
	}
	
	//tab2(".a",".b","on","click");
	tab2($(".a"),$(".b"),"on","mouseover");
	tab2($(".c li"),$(".d"),"on","click");
	
});
</script>
</head>
<body>
	<div class="a">a</div>
	<div class="a">b</div>
	<div class="a">c</div>
	<div class="a">d</div>
	<div class="a on">e</div><br>
	<div class="b">1</div>
	<div class="b">2</div>
	<div class="b">3</div>
	<div class="b">4</div>
	<div class="b">5</div>
	
	<br><br>
	
	<ul class="c">
		<li>1</li>
		<li class="on">2</li>
		<li>3</li>
		<li>4</li>
		<li>5</li>
	</ul><br>
	<div class="d">1</div>
	<div class="d">2</div>
	<div class="d">3</div>
	<div class="d">4</div>
	<div class="d">5</div>
	

</body>
</html>


上面这个精简了很多代码比较容易理解
这个里面就是用了上面推荐的 传入jquery对象的方法
tab2($(".c li"),$(".d"),"on","click");
这里面 a b c d e对应的就是$(".c li")这个jquery对象
1 2 3 4 5对应的是$(".d")这个jquery对象
不过推荐的方法是在两个的外面再加一层并使用不同的class或者id避免冲突
on是一个class 对应的是初始时候显示div的样式
最后的click对应的是事件,比如这里就是点击后切换,前面的mouseover就是鼠标经过时切换

给了完整代码了,复制到记事本里面另存为随意的 .html 就可以通过ie或ff看效果了
上面效果图我也放了两个
补充,里面用到了jquery.js文件,我使用的是google上面的文件,如果你没有互联网只能自己找一个然后修改一下文件路径了
  • 大小: 12.6 KB
  • 大小: 5.9 KB
0
0
分享到:
评论

相关推荐

    jquery带按钮自动切换tab菜单源码

    本示例“jquery带按钮自动切换tab菜单源码”着重于利用jQuery实现一个功能丰富的Tab菜单,该菜单具备自动切换和手动切换功能,为用户提供了良好的交互体验。 Tab菜单是一种常见的网页布局方式,它将大量内容组织成...

    仿163的TAB标签

    "这句话可能意味着这个实现方法或代码是作者从其他来源获取并分享的,旨在为用户提供一个类似163网站的TAB标签实现示例。希望读者能够从中学习并应用到自己的项目中。 【标签】"tab"是网页设计中的一个重要元素,它...

    一个非常漂亮的多Tab后台管理框架

    标题中的“一个非常漂亮的多Tab后台管理框架”指的是一个专门设计用于后台管理系统界面的前端框架,它具有美观的多标签页(Tab)功能,能够帮助用户在不同的操作之间轻松切换和管理。这样的框架通常用于企业级应用,...

    Js网页TAB,图片轮播插件附示例代码.rar

    Js网页TAB,图片轮播插件附示例代码,包括了选项卡和网页焦点图效果的图片展示插件,都是些常用的网页特效代码,LixTabs,javascript TAB切换类,LixTabs:实现一个普通的tab选项卡切换效果,不自动,无延迟,鼠标指向...

    仿163邮箱登录页面

    【仿163邮箱登录页面】是一个常见的前端开发练习,主要目标是模仿163邮箱的登录界面,以便学习和掌握网页布局、样式设计以及交互实现等技能。在这个项目中,我们将关注三个主要方面:HTML结构(div标签)、CSS样式...

    一个类似163邮箱标签tab的样例

    这个"一个类似163邮箱标签tab的样例"是一个示例项目,可能是为了教学或演示目的而创建的,它模仿了163邮箱的标签Tab功能。在这个样例中,开发者可能实现了以下关键知识点: 1. **HTML结构**:创建Tab组件的基础是...

    tab标签选项卡效果同一页n组(8种皮肤)

    开发者或设计师可以通过引用这些文件,快速在自己的网站中集成tab功能,同时也可以作为学习和研究网页交互设计的一个实例。通过深入研究和自定义这些代码,可以进一步提升网站的用户体验和设计质量。

    android手机触屏TAB菜单源码

    接着,`ViewPager`通常用来自定义多个可滑动的页面,每个页面对应一个`Fragment`或者`Activity`。在布局文件中,`ViewPager`会被添加到布局中,并在代码中初始化: ```java ViewPager viewPager = findViewById(R....

    JQ网易首页tab多功能文章选项卡

    本项目“JQ网易首页tab多功能文章选项卡”就是这样一个典型的示例,它借鉴了原网易163首页的Tab样式,提供了一种功能丰富的文章展示解决方案。 首先,我们要理解“Tab标签”的概念。Tab标签是一种UI设计模式,通过...

    Jquery实现tab菜单

    本教程将详细介绍如何使用jQuery来实现一个功能丰富的tab菜单,使得用户在切换菜单选项时无需页面刷新,提供更流畅的用户体验。 一、jQuery基本操作 在开始实现tab菜单之前,我们需要了解jQuery的基本用法。首先,...

    css实现tab效果仿163邮箱样式

    ### CSS 实现 Tab 效果仿 163 邮箱样式 #### 知识点概述 在 Web 开发中,Tab 导航是非常常见的一种交互方式,它可以帮助用户在不同的页面或功能之间快速切换。本文将详细介绍如何使用纯 CSS 实现类似于 163 邮箱中...

    163网盘折叠菜单效果

    163网盘作为一个在线存储服务,其折叠菜单的实现可能涉及以下技术: 1. HTML 结构:HTML 通过 `&lt;ul&gt;` 和 `&lt;li&gt;` 标签构建菜单的基础框架,主菜单和子菜单分别对应不同的层级。例如,主菜单可以是 `&lt;li&gt;` 中的链接...

    EDAhelper本软件是增强EDA鼠标中键功能的工具。

    前两天一个名叫xtomfuk 的朋友来信要求增加PADS的支持,欣然接受,于是就有了这个版本。由于增加了多个EDA软件的支持,原名不能再用了,姑且就叫EDAHelper吧。为了纪念上一个版本,这一版也选择在3月25日两周年之际...

    特好用的五笔输入法-供参考

    其实做起来不难, 用微软输入法生成器导出海峰五笔的码表对应的源文本文件, 用excel 2007 分列, 添加空列作tab符, 使用函数修改编码,如在重码时按重复度添加最后一个码, 生成txt, 再用多多输入法生成器生成. ...

    何冬州制用的五笔单字输入法

    其实做起来不难, 用微软输入法生成器导出海峰五笔的码表对应的源文本文件, 用excel 2007 分列, 添加空列作tab符, 使用函数修改编码,如在重码时按重复度添加最后一个码, 生成txt, 再用多多输入法生成器生成. ...

    Excel 使用技巧集锦-163种技巧

    12. **快速切换工作簿**:使用Alt + Ctrl + Tab组合键在打开的工作簿间切换。 13. **选定超级链接文本**:双击超级链接可打开链接,右键点击可以选择超级链接的文本属性。 14. **快速查找**:使用Ctrl + F打开查找...

    Collector资料收集管理器

    修正新建一个数据库时不能新建一个目录或文件 2007-08-10 15:45:00 1、添加修改文本的一些功能。 2、修正文本状态下设标题错误问题; 2.85 1、修正在VISTA下MHT格式收集网页无内容显示问题。 2.84 1、修正在...

    高仿微信界面

    下面是安卓开发仿微信界面的代码。 分为3步,第一步是界面的编写,第二步是导航界面,第三步是右上角菜单栏。 开始第一步前先预览一下效果。 第一步,界面。 界面的思路是利用ViewPager+Fragment实现,所以...

    《程序天下:JavaScript实例自学手册》光盘源码

    6.5 从一个下拉列表往另一个下拉列表添加内容 6.6 改变列表项的上下顺序 6.7 给下拉框数据分组 6.8 获取列表框的选择 6.9 类IE下拉框 6.10 下拉框式邮件发送 6.11 获取多选框的选择项 6.12 手动调整的列表框 6.13 ...

Global site tag (gtag.js) - Google Analytics