`

jquery tabs

 
阅读更多

记录一下tabs插件。

/* tab box */
.x-tabs {
	
}

.x-tab-menu-box {
	position: relative;
	border-bottom: 1px solid #e8e8e8;
}

.x-tab-menu {
	position: relative;
	top: 1px;
	width: 100%;
	overflow: hidden;
	list-style: none;
	z-index: 3;
}

.x-tab-item {
	float: left;
	position: relative;
	height: 20px;
	line-height: 20px;
	padding: 3px 10px;
	background-color: #F2F2F2;
	border: 1px solid #D9D9D9;
	color: #7c7c7c;
	cursor: pointer;
	margin-right: 5px;
}

.x-tab-menu .x-tab-current {
	background-color: #ffffff;
	color: #555555;
	cursor: default;
	border-bottom-color: white;
}

.x-tab-box {
	background: white;
	border: 1px solid #D9D9D9;
	border-top: none 0;
	position: relative;
}

.x-tab-body {
	padding: 10px;
	display: none;
}

.x-tab-body-show {
	display: block;
}


;(function($) {

	$.tabs = function($element, options) {
		
		var self = this;

		this.$element = $element;
		
		options.cls && $element.addClass(options.cls);

		// 宽度
		options.width && options.width !='auto' && this.width(options.width);
		
		// 高度
		options.height && options.height !='auto' && this.height(options.height);

		// 回调函数
		options.onActive && this.on("active",options.onActive);

		this.$menu = $element.find(".x-tab-menu");
		
		this.$body = $element.find(".x-tab-box");

		this.active(options.active || 0 ,true);
		
		var delay=options.delay;
		
		$element.on(options.event,".x-tab-item",function(e){
			
			var sf=self,$li=$(this);
			
			sf.pause();
			
			sf._active_timer_ && clearTimeout(sf._active_timer_);
			
			sf._active_timer_= delay > 0 ? setTimeout(function(){sf.active($li);},delay) : sf.active($li);	
			
			e.preventDefault();
			
		});
		
		// 自动播放
		
		var play=options.play;

		$element.hover(function(e){self.pause();},function(e){play && self.play();});
		
		!!play && this.play($.isNumeric(play) ? play : 3000);
		
		return this;
	};
	
	$.tabs.prototype.width = function(width){
		
		var $ele = this.$element;
		
		if(width == undefined){return $ele.width();}
		
		$.isNumeric(width) ? $ele.width(width+"px") : $ele.css("width",width);
		
		return this;
		
	};
	
	$.tabs.prototype.height = function(height){
		
		var $ele = this.$body;
		
		if(height == undefined){return $ele.height();}
		
		$.isNumeric(height) ? $ele.height(height+"px") : $ele.css("height",height);
		
		return this;
		
	};

	// 自动播放
	$.tabs.prototype.play = function(interval){
		
		var self=this;
		
		this.pause();

		this._play_interval_ = interval || this._play_interval_;

		this._active_interval_ = setInterval(function(){
			
			var sf=self,$menu=sf.$menu,$current=$menu.find("> .x-tab-current");
			
			var $next = $current.length == 0 ? $menu.find("> .x-tab-item:eq(0)").next() : $current.next();

			$next.length == 0 ? $next=$menu.find("> .x-tab-item:eq(0)") : false;
			
			sf.active($next);
			
		},this._play_interval_);
		
		return this;
		
	};
	
	// 停止自动播放
	$.tabs.prototype.pause = function(){
	
		this._active_interval_ && clearInterval(this._active_interval_);
		
		return this;
	};
	
	/** 选择 * */
	$.tabs.prototype.active = function($li,force) {

		var index = -1,cls="x-tab-current";
		
		$li instanceof jQuery ? index=$li.index() : (index = $li ,$li=this.$menu.find("> li:eq("+index+")"));
		
		if(index == -1){return this;}
		
		force=!!force;

		if(!force && $li.hasClass(cls)){return this};
	
		var $current=this.$menu.find("> ."+cls),old=$current.length ? $current.index() : -1;
		
		// 旧有活跃标签页处理
		old !=-1 && $current.removeClass(cls) && this.$body.find("> .x-tab-body:eq("+old+")").removeClass("x-tab-body-show");

		// 设置活跃标签页
		$li.addClass(cls) && this.$body.find("> .x-tab-body:eq("+index+")").addClass("x-tab-body-show");
		
		// 触发事件
		this.trigger("active",index,old);
	
		return this;
	};

	$.tabs.prototype.trigger = function(event) {

		var params = [ this];
		
		for ( var i = 1, l = arguments.length; i < l; i++) 
			params[i] = arguments[i];
		
		var type=event.toUpperCase();
		
		event=new jQuery.Event(type, type+"."+this.widget );
	
		this.$element.triggerHandler(event, params);
	
		return event;
	};

	$.tabs.prototype.on = function(event, handler) {
		this.$element.on(event.toUpperCase() + "." + this.widget, handler);
		return this;
	};
	
	$.tabs.prototype.one = function(event, handler) {
		this.$element.one(event.toUpperCase() + "." + this.widget, handler);
		return this;
	};

	$.tabs.prototype.off = function(event, handler) {
		this.$element.off(((event && event.toUpperCase()) || '') + "." + this.widget, handler);
		return this;
	};

	$.tabs.prototype.widget = 'tabs';

	$.fn.tabs = $.fn.Tabs = function(options) {
		var f=null,fields=[];

		for(var i=0,l=this.length;i<l;i++){
				f=$.data(this[i], "widget");
				!f ? (f=new $.tabs(this.eq(i), $.extend( {}, $.fn.tabs.defaults, options)),$.data(this[i], "widget", f)) : false;
				fields[i]=f;
		}

		return l===1 ? fields[0] : fields;
	};

	$.fn.tabs.defaults = {

		active:0,

		cls : '',

		event : 'mouseover',

		width : 'auto',

		height : 'auto',

		delay:0,

		play:false
	};

})(jQuery);

 

<div id='tab_test' class='x-tabs'>

		<div class='x-tab-menu-box'>

			<ul class='x-tab-menu'>

				<li class='x-tab-item x-tab-current'><a>运价查询</a></li>
				<li class='x-tab-item'><a>船期查询</a></li>
				<li class='x-tab-item'><a>货物跟踪</a></li>

				<li class='x-tab-item'><a>报关查询</a></li>

			</ul>

		</div>

		<div class='x-tab-box'>

			<div class='x-tab-body x-tab-body-show'>1</div>

			<div class='x-tab-body '>2</div>

			<div class='x-tab-body '>3</div>

			<div class='x-tab-body '>4</div>

		</div>

	</div>

 

$("#tab_test").tabs({
				play:true,
				width : 600,
				active:2
			});

 

分享到:
评论

相关推荐

    使用JQUERY Tabs插件宿主IFRAMES

    在探讨如何使用JQUERY Tabs插件宿主IFRAMES之前,首先需要了解什么是JQUERY Tabs插件和IFRAME。JQUERY Tabs插件是JQUERY UI库中的一个组件,它允许开发者轻松地在一个网页上添加选项卡式界面,提升用户体验。而...

    基于jquery tabs切换源码

    在本文中,我们将深入探讨基于jQuery的tabs切换功能,这是网页设计中常见的一种交互元素,用于组织和展示分块内容。jQuery库简化了JavaScript的许多复杂操作,使得实现这种功能变得简单而高效。 首先,"基于jQuery ...

    秋天 jQuery tabs 插件.rar

    秋天 jQuery tabs 插件是一个基于流行的JavaScript库jQuery开发的组件,用于实现网页中的标签页功能。这个插件允许用户在不同的内容区域之间轻松切换,提高了网页的交互性和用户体验。下面将详细介绍该插件的使用、...

    jQuery tabs切换源码

    在本示例中,"jQuery tabs切换源码"是指使用jQuery实现的一个选项卡(tabs)功能,它允许用户通过点击不同的标签来切换显示不同的内容区域。 在jQuery中,实现tabs切换通常会涉及到以下几个核心知识点: 1. **选择...

    jquerytabs jquery选项卡 jquery tabs

    jQuery Tabs是jQuery库中的一个组件,它用于创建交互式的、多面板的用户界面,通常用于展示分段的内容,如不同的章节、产品分类或导航链接。这个组件极大地提升了用户体验,因为它允许用户在一个固定的空间内切换...

    jQuery tabs 纵向显示

    在网页设计中,jQuery UI 的 tabs 是一个非常实用的功能,它允许我们将多个内容区域组织成可切换的选项卡,提供了一种整洁的方式来展示大量信息。然而,标准的 jQuery tabs 默认是横向排列的,但有时为了适应页面...

    jQuery Tabs插件 (选项卡插件)

    jQuery Tabs插件是一款广泛应用于网页开发中的选项卡组件,它基于流行的JavaScript库jQuery构建,能够帮助开发者轻松实现页面上的内容分块展示。选项卡插件是网页设计中一种常见的交互元素,通过它可以将大量信息...

    jQuery Tabs插件 PWS Tabs

    **jQuery Tabs插件 PWS Tabs** 是一个用于创建交互式、动态内容切换的JavaScript库,专为增强网页的用户体验而设计。它允许开发者轻松地将多个面板组织成一个可滚动的选项卡结构,使得用户可以方便地在不同内容之间...

    自动切换模式Tab选项卡 - Rotating jQuery tabs

    "自动切换模式Tab选项卡 - Rotating jQuery tabs"是一个基于jQuery的插件,它为网站的导航和信息展示提供了一种高效且吸引用户注意力的方式。Tab选项卡是一种常见的UI设计元素,用于组织和呈现大量信息,使得用户...

    jQuery Tabs.zip

    jQuery Tabs 是一个流行的JavaScript库jQuery中的一个组件,用于创建功能丰富的选项卡式界面。这个压缩包"jQuery Tabs.zip"很可能包含实现这一功能所需的所有资源,包括CSS样式文件、JavaScript脚本以及可能的示例...

    jquery tabs实例

    在网页设计中,jQuery UI 的 Tabs 是一个非常实用的功能,它可以帮助我们轻松创建美观且功能齐全的标签式界面。这个“jquery tabs实例”提供了一套完整的JavaScript和CSS代码,用于帮助开发者快速理解和应用jQuery ...

    jquery的tabs控件

    在网页设计中,jQuery的Tabs控件是一种常用的交互元素,用于组织和展示多部分内容,比如文本、图片或视频,让用户可以方便地切换查看。这个控件通过简洁的API和丰富的自定义选项,使得开发者能够轻松地创建出具有...

    带CSS3过渡动画效果的jQueryTabs选项卡插件

    在本文中,我们将深入探讨"带CSS3过渡动画效果的jQueryTabs选项卡插件",这是一个结合了jQuery和CSS3技术的高效、轻量级的选项卡解决方案。jQueryTab插件以其简洁的API、响应式设计和丰富的CSS3动画效果为特点,广泛...

    简易版的jquery tabs

    标题中的“简易版的jquery tabs”指的是一个使用jQuery库实现的简单版标签页功能。jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画制作和Ajax交互等任务。在网页设计中,标签页(tabs)...

    jquery的tabs的插件1.0(20140301)

    《jQuery的Tabs插件1.0(20140301)详解与实践》 在Web开发中,Tab组件是一种常见的用户界面元素,它能够有效地组织和展示大量信息,提高用户体验。jQuery是一个轻量级、高性能的JavaScript库,为开发者提供了丰富的...

    简单响应式jQuery Tabs选项卡插件.zip

    这款名为"简单响应式jQuery Tabs选项卡插件"的工具正是为了实现这一目标而设计的。它是一个轻量级的JavaScript解决方案,利用jQuery库的强大功能来创建灵活的选项卡组件,能够自动适应屏幕大小,确保在桌面、平板...

    jQuery Tabs带流程步骤的滑动选项卡.zip

    jQuery UI库中的Tabs插件允许开发者轻松创建分页式的内容区域,每个选项卡代表一个独立的内容面板。通过调用`.tabs()`方法,我们可以将一组链接和相应的div容器转换为功能完备的选项卡组件。例如: ```javascript $...

Global site tag (gtag.js) - Google Analytics