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

tab选框集合

阅读更多
圆角参考了经典论坛中坛友建议,把原来用的<u>换成了 <span>其实原理还是差不多的

淡入淡出的效果是更新网站时候的需求。。没有办法 只好实现了。。。

最开始图省事做的仿163切换的太简易了,后来扩充了一些东西,抛砖作为一个写的思路
有的代码重用性很大,完全可以把相同功能的写成函数,不要一遍一遍的再每一个页面都写上一堆一堆的<script>代码,太乱 而且管理也不方便

最后面的例子只是提供了一个扩充的思路。比如焦点图需要大图,小图,还有文字描述
具体样式就需要美工们自己去设计了!




这个是套用了tab2方法实现的
实现思路,需要最外层一个div,左侧大图浮动居左,初始时display:none;
右侧四个小图浮动居右
对于tab2传入值:
tab2($(".d2 .aa"),$(".d2 .bb"),"on",1500,800,0.1,1);
.d2是最外层div的class .bb是每个图片外的class .aa是右侧小图对应的class
on为小图的特殊样式--选中时
1500: 标签切换时间
800: 图片淡入时间
0.1: 内容渐进起始半透明度
   1: 内容渐进结束半透明度

页面中需要多个的时候只需要修改 .d2 只要能保证每个焦点图外层的class是唯一的就行
或者使用id的选择器指定div

必须文件为jquery.js 版本理论上1.4.2就好,1.3.2无淡入淡出效果



<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Tab</title>
<style>
html body 	{margin:0px; padding:0px;}

.t_body{border:1px solid #ddd; padding:10px; width:250px; margin:50px;float:left;}

.aa	{background-color:#eee; width:25px; cursor:pointer; float:left; margin-left:10px; text-align:center;}
.bb	{background-color:#eae; width:250px; height:250px; display:none; font-size:50px;}
.cc	{background-color:#eee; width:100%; height:20px; display:none;}
.on	{background-color:#c21; width:30px; border-bottom:0px; border-top:0px;}

/* ---------- */

.yuan1 span	{display: block;overflow: hidden;height: 1px; border-color:#77a;} 
.yuan2 span	{display: block;overflow: hidden;height: 1px; border-color:#77a;} 
.span1		{margin:0px 3px; background-color:#77a;}
.span2		{margin:0px 1px; border-left:2px solid; border-right:2px solid;}
.span3		{margin:0px 1px; border-left:1px solid; border-right:1px solid;}

.d_body	{margin:50px;width:400px; height:400px; font-size:12px;float:left;}
.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;}

.bbb		{background-color:#fff; height:100%; display:none; margin:10px;}
.on1	{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>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
<script>
<!--
$(document).ready(function() {

	/*
		o1: 标签元素
		o2: 内容元素
		c : 标签元素显示用样式
		e : 触发事件 如 click mouseover 
	*/
	function tab1(o1,o2,c,e){
		o1.each(function(i){
			$(this).bind(e,function(){
				o2.hide().eq(i).show();
				o1.removeClass(c);
				$(this).addClass(c);
			})
			if ($(this).hasClass(c)) {
				$(this).addClass(c);
				o2.hide().eq(i).show();
			}
		})
	}


	/*
		o1: 标签元素
		o2: 内容元素
		c : 标签元素显示用样式
		t1: 标签切换时间
		t2: 内容渐进时间
		a : 内容渐进起始半透明度 0.1~1
		b : 内容渐进结束半透明度 0.1~1
	*/
	function tab2(o1,o2,c,t1,t2,a,b){
		var count=o1.size()-1;
		var now;
		var TimeInterval;
		o1.each(function(i){
			$(this).mouseover(function(){
				o2.hide().eq(i).show();
				o1.removeClass(c);
				$(this).addClass(c);
				window.clearInterval(TimeInterval);
			}).mouseout(function(){
				now = i+1;
				TimeInterval = window.setInterval(changeimage,t1);
			});

			//初始化显示
			if ($(this).hasClass(c)) {
				$(this).addClass(c);
				o2.hide().eq(i).show();
				now = i+1;
			}
		})
		
		TimeInterval = window.setInterval(changeimage,t1);
		function changeimage(){
			if(now>count)now=0;
			o2.hide().eq(now).stop().fadeTo(0,a).fadeTo(t2,b);
			o1.removeClass(c).eq(now).addClass(c);
			now++;
		}
	}
	
	
	/*
		o1: 标签元素
		o2: 内容元素
		o3: 内容元素
		c : 标签元素显示用样式
		e : 触发事件 如 click mouseover 
	*/
	function tab3(o1,o2,o3,c,e){
		o1.each(function(i){
			$(this).bind(e,function(){
				o2.hide().eq(i).show();
				o3.hide().eq(i).show();
				o1.removeClass(c);
				$(this).addClass(c);
			})
			if ($(this).hasClass(c)) {
				$(this).addClass(c);
				o2.hide().eq(i).show();
				o3.hide().eq(i).show();
			}
		})
	}



	/*
		o1: 标签元素
		o2: 内容元素
		o3: 内容元素
		c : 标签元素显示用样式
		t1: 标签切换时间
		t2: 内容渐进时间
		a : 内容渐进起始半透明度 0.1~1
		b : 内容渐进结束半透明度 0.1~1
	*/
	function tab4(o1,o2,o3,c,t1,t2,a,b){
		var count=o1.size()-1;
		var now;
		var TimeInterval;
		o1.each(function(i){
			$(this).mouseover(function(){
				o2.hide().eq(i).show();
				o3.hide().eq(i).show();
				o1.removeClass(c);
				$(this).addClass(c);
				window.clearInterval(TimeInterval);
			}).mouseout(function(){
				now = i+1;
				TimeInterval = window.setInterval(changeimage,t1);
			});

			//初始化显示
			if ($(this).hasClass(c)) {
				$(this).addClass(c);
				o2.hide().eq(i).show();
				o3.hide().eq(i).show();
				now = i+1;
			}
		})
		
		TimeInterval = window.setInterval(changeimage,t1);
		function changeimage(){
			if(now>count)now=0;
			o3.hide().eq(now).show();
			o2.hide().eq(now).stop().fadeTo(0,a).fadeTo(t2,b);
			o1.removeClass(c).eq(now).addClass(c);
			now++;
		}
	}

/*	[color=red]代码会执行,所以只能注释掉!运行的时候记得把这里的注释去掉[/color]
	//调用函数
	tab1($(".yuan1 .d_t"),$(".yuan1 .bbb"),"on1","mouseover");
	tab1($(".yuan2 .d_t"),$(".yuan2 .bbb"),"on1","click");

	tab1($(".d0 .aa"),$(".d0 .bb"),"on","click");
	tab1($(".d1 .aa"),$(".d1 .bb"),"on","mouseover");
	tab2($(".d2 .aa"),$(".d2 .bb"),"on",1500,800,0.1,1);

	tab3($(".d3 .aa"),$(".d3 .bb"),$(".d3 .cc"),"on","mouseover");
	tab4($(".d4 .aa"),$(".d4 .bb"),$(".d4 .cc"),"on",1500,800,0.1,1);
	tab4($(".d5 .aa"),$(".d5 .bb"),$(".d5 .cc"),"on",1500,0,1,1);

*/


});
-->
</script>
</head>
<body>


<div class="d_body yuan1">
	<div>鼠标悬浮切换</div><br>
	<span class="span1"></span><span class="span2"></span><span class="span3"></span>
	<div class="d_top">
		<div class="ln"></div>
		<div class="d_t textcenter on1">
			<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="bbb"><font color="blue">第一个内容</font></div>
		<div class="bbb"><font color="red">第二个内容</font></div>
		<div class="bbb"><font color="black">第三个内容</font></div>
	</div>
	<div class="clr of"></div>
</div>

<div class="d_body yuan2">
	<div>点击切换</div><br>
	<span class="span1"></span><span class="span2"></span><span class="span3"></span>
	<div class="d_top">
		<div class="ln"></div>
		<div class="d_t textcenter on1">
			<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="bbb"><font color="blue">第一个内容</font></div>
		<div class="bbb"><font color="red">第二个内容</font></div>
		<div class="bbb"><font color="black">第三个内容</font></div>
	</div>
	<div class="clr of"></div>
</div>

<div class="t_body d0">
	<div class="aa">a</div>
	<div class="aa">b</div>
	<div class="aa on">c</div>
	<div class="aa">d</div>
	<div class="aa">e</div><br>
	<div class="bb">1</div>
	<div class="bb">2</div>
	<div class="bb">点击切换</div>
	<div class="bb">4</div>
	<div class="bb">5</div>	
<div style="clear:both;"></div>
</div>

<div class="t_body d1">
	<div class="aa">a</div>
	<div class="aa">b</div>
	<div class="aa on">c</div>
	<div class="aa">d</div>
	<div class="aa">e</div><br>
	<div class="bb">1</div>
	<div class="bb">2</div>
	<div class="bb">3</div>
	<div class="bb">4</div>
	<div class="bb">5</div>	
<div style="clear:both;"></div>
</div>

<div class="t_body d2">
	<div class="aa">a</div>
	<div class="aa">b</div>
	<div class="aa on">c</div>
	<div class="aa">d</div>
	<div class="aa">e</div><br>
	<div class="bb">1</div>
	<div class="bb">2</div>
	<div class="bb">3</div>
	<div class="bb">4</div>
	<div class="bb">5</div>	
<div style="clear:both;"></div>
</div>

<div class="t_body d3">
	<div class="aa">a</div>
	<div class="aa">b</div>
	<div class="aa on">c</div>
	<div class="aa">d</div>
	<div class="aa">e</div><br>
	<div class="bb">1</div>
	<div class="bb">2</div>
	<div class="bb">悬浮切换</div>
	<div class="bb">4</div>
	<div class="bb">5</div>
	<div class="cc">111111</div>
	<div class="cc">222222</div>
	<div class="cc">333333</div>
	<div class="cc">444444</div>
	<div class="cc">555555</div>	
<div style="clear:both;"></div>
</div>

<div class="t_body d4">
	<div class="aa">a</div>
	<div class="aa">b</div>
	<div class="aa on">c</div>
	<div class="aa">d</div>
	<div class="aa">e</div><br>
	<div class="bb">1</div>
	<div class="bb">2</div>
	<div class="bb">3</div>
	<div class="bb">4</div>
	<div class="bb">5</div>
	<div class="cc">111111</div>
	<div class="cc">222222</div>
	<div class="cc">333333</div>
	<div class="cc">444444</div>
	<div class="cc">555555</div>	
<div style="clear:both;"></div>
</div>
<div class="t_body d5">
	<div class="aa">a</div>
	<div class="aa">b</div>
	<div class="aa on">c</div>
	<div class="aa">d</div>
	<div class="aa">e</div><br>
	<div class="bb">1</div>
	<div class="bb">2</div>
	<div class="bb">3</div>
	<div class="bb">4</div>
	<div class="bb">5</div>
	<div class="cc">111111</div>
	<div class="cc">222222</div>
	<div class="cc">333333</div>
	<div class="cc">444444</div>
	<div class="cc">555555</div>	
<div style="clear:both;"></div>
</div>


</body>
</html>
  • 大小: 13.4 KB
  • 大小: 40 KB
分享到:
评论
3 楼 pywepe 2011-04-11  
想把你这个封装成 jsp tag
可是...
我慢慢弄
2 楼 yuqihui 2011-04-09  
为什么在firefox不能用呢
1 楼 lxtx517 2011-03-21  
很早就是span了啊

相关推荐

    tab 选择框

    在IT行业中,"Tab选择框"是一种常见的用户界面元素,特别是在网页设计和开发中。它允许用户通过不同的标签页来组织和浏览内容,提供了一种高效且直观的方式来切换不同的视图或信息区域。本篇文章将深入探讨...

    一个仿淘宝的tab卡选框 jquery+css

    本项目“一个仿淘宝的tab卡选框”利用jQuery和CSS技术实现了这一功能,旨在提供类似淘宝网站的交互效果。下面我们将深入探讨这个项目所涉及的知识点。 首先,我们来了解jQuery。jQuery是一个轻量级的JavaScript库,...

    菜单tab样式经典集合10.3.24

    开发网站必备菜单tab样式集合,里面集合了很多东西包括菜单 tab 选项卡 banner css js各种样式具体如:35个菜单样式、19个CSS菜单、鼠标放大镜查看图片效果、css_tab_ul菜单安装程序、让你震撼的图片展示javascript...

    类似微信qq的fragment加上tab的集合,包含了小红点

    在标题中提到的"类似微信qq的fragment加上tab的集合",可能是一个开源项目或者代码示例,它模仿了微信和QQ的这种布局方式,并且集成了小红点的显示功能。小红点在Android中通常是通过设置ImageView的可见性和颜色来...

    自绘tab 集合 多标签

    本主题聚焦于“自绘tab集合”,即如何通过编程手段创建具有多种样式的标签页(Tab)组件,包括含按钮的实现以及自绘按钮的实现。 1. **自绘Tab**: 自绘Tab是针对标准的Tab控件进行定制化设计的过程。通常,系统提供...

    横向和树形tab tab菜单

    在网页设计和开发中,"横向和树形tab菜单"是一种常见的用户界面元素,用于组织和展示大量信息。这种设计模式有效地利用空间,提供清晰的导航结构,帮助用户快速找到所需内容。以下是对这一主题的详细说明: 1. **...

    各种web的tab样式大全

    本资源"各种web的tab样式大全"集合了多种Tab设计与实现方式,适用于不同需求和场景的网页设计。 一、Tab组件的基础概念 Tab组件通常由一个标题栏和对应的内容区域组成,标题栏中的每个按钮代表一个独立的选项卡,...

    bootstrap-closable-tab tab可关闭组件

    这包括一个`&lt;ul&gt;`元素作为Tab导航,每个`&lt;li&gt;`元素代表一个Tab,`&lt;a&gt;`元素用于链接到对应的Tab内容,以及一个可选的`&lt;button&gt;`元素作为关闭按钮。 2. **CSS 样式**:为了美观,我们可能需要定制CSS样式,使关闭按钮...

    [QT]实现Tab键切换控件的两种方式及禁止Tab切换的简单方法

    在QT编程中,用户界面(UI)的交互性是至关重要的,Tab键的使用就是提升用户体验的一个关键元素。Tab键可以方便用户在不同控件之间快速切换,无需使用鼠标。本篇文章将深入探讨如何实现Tab键切换控件的两种方式以及...

    Android垂直tab导航栏、左侧竖直tab导航栏

    在Android应用开发中,设计一个用户友好的界面是至关重要的,而Tab导航栏作为一种常见的界面元素,能够帮助用户轻松地在不同的内容区域之间切换。"Android垂直tab导航栏、左侧竖直tab导航栏"就是这样一个设计,它...

    React-Native 实现点击Tab标签切换Tab页面

    在React-Native开发中,创建一个用户界面时,Tab导航是一种常见的设计模式,它允许用户在不同的视图之间轻松切换。本教程将详细介绍如何使用React-Native中的TabBar组件来实现点击Tab标签切换Tab页面的功能。 首先...

    Tab2Shp 批量tab转shp工具

    《Tab2Shp:批量将TAB转换为SHP的实用工具详解》 在地理信息系统(GIS)领域,数据格式的转换是一项常见的任务。本文将详细阐述Tab2Shp工具的功能和使用方法,帮助用户理解如何批量将TAB格式的数据转换为SHP格式,...

    bootstrap动态生成tab

    在Web应用中,Tab组件常用于组织和展示多面板内容,而动态生成Tab则可以根据用户交互灵活地创建新的Tab页。在本场景中,"bootstrap动态生成tab"涉及到的主要知识点包括JavaScript编程、Bootstrap框架的Tab组件以及...

    tabby macos 安装包

    Tabby是一款功能强大的终端模拟器,专为包括macOS在内的多种操作系统设计。它提供了一个现代化的界面,支持多种shell,并且具有高度可定制性,使用户能够根据个人需求调整终端的各项设置。在macOS上安装Tabby,可以...

    Tabby各类插件,提供扩展功能

    标题中的“Tabby各类插件,提供扩展功能”指的是Tabby,这是一款强大的终端模拟器,它支持多种操作系统,如Windows、Linux和macOS。Tabby(原名Terminator)以其可定制性、多标签界面和丰富的插件系统而闻名,用户...

    同一页面多个Tab选项卡嵌套显示实例

    2. 内部Tab:在某个Tab的内容区域内,再次使用Tab结构创建子Tab,这些子Tab只在父Tab被选中时可见。 3. 事件处理:使用JavaScript或jQuery监听主Tab和子Tab的点击事件,根据用户选择更新内容区域。 4. 层级管理:...

    swing多tab页面板练习

    在Java的Swing库中,开发GUI应用程序时,我们经常需要用到多Tab的界面设计,这可以为用户提供清晰的模块划分,提高交互体验。本练习主要关注如何创建和管理多个Tab,利用`javax.swing.JTabbedPane`组件来实现这一...

    支持网页版的SSH 工具-Tabby介绍.docx

    支持网页版的SSH工具-Tabby介绍 Tabby是一个功能强大且易用的SSH工具,它提供了多平台支持、SFTP功能、炫酷的终端页面、插件支持等特性。下面是Tabby的详细介绍: 1. 多平台支持:Tabby提供了Windows、MacOS...

    tab选项卡切换效果,tab选项卡内容宽度自适应

    在网页设计中,"tab选项卡切换效果"是一种常见的用户界面设计模式,它允许用户在有限的空间内查看和切换不同的内容区域。这种效果通常用于显示大量相关但互斥的信息,如产品详情、用户评论或者设置选项。在这个项目...

    Ace Admin Tab页实现

    在“Ace Admin Tab页实现”这个主题中,我们将深入探讨如何利用Ace框架来构建和管理Tab页功能。 Ace框架是一个轻量级、高性能的前端JavaScript库,特别适用于构建响应式的Web应用。它提供了多种UI组件,如表格、...

Global site tag (gtag.js) - Google Analytics