JQuery Tab选项卡效果代码改进版


Posted in Javascript onApril 01, 2010

介绍的是基于JQuery实现的一个选项卡效果,重点体现在HTML里没有内联事件处理程序,而是定义在js文件里,做到行为与结构的分离。在实际应用过程中,只 要保证选项卡模块结构代码的完整性,就可以任意添加N个同类选项卡,不需要手动在HTML里绑定事件处理程序以及给要隐藏显示的内容层添加ID。
在这里,我又做了部分的修改,增加了选项卡可自动切换功能,以及选项卡点击相应还是鼠标放上后相应的参数,同时依然支持多次调用。
现在,我把代码贴上,与众博友共享
这是js脚本

/* jquery-fn-accordion v0 
* Based on jQuery JavaScript Library v3 
* http://jquery.com/ 
* 
* The author of the following code: miqi2214 , wbpbest 
* Blog:eycbest.cnblogs.com , miqi2214.cnblogs.com 
* Date: 2010-3-10 
*/ 
//注意:如果调试出错,请检查您引用的jquery版本号,当前引用版本为1.3 
//参数说明: 
//tabList:包裹选项卡的父级层 
//tabTxt :包裹内容层的父级层 
//options.currentTab:激活选项卡的序列号 
//options.defaultClass:当前选项卡激活状态样式名,默认名字为“current” 
//isAutoPlay:是否自动切换 
//stepTime:切换间隔时间 
//switchingMode:切换方式('c'表示click切换;'o'表示mouseover切换) 
//调用方式 如本页最下方代码 
$.fn.tabs = function(tabList, tabTxt, options) { 
var _tabList = $(this).find(tabList); 
var _tabTxt = $(this).find(tabTxt); 
//为了简化操作,强制规定选项卡必须用li标签实现 
var tabListLi = _tabList.find("li"); 
var defaults = { currentTab: 0, defaultClass: "current", isAutoPlay: false, stepTime: 2000, switchingMode: "c" }; 
var o = $.extend({}, defaults, options); 
var _isAutoPlay = o.isAutoPlay; 
var _stepTime = o.stepTime; 
var _switchingMode = o.switchingMode; 
_tabList.find("li:eq(" + o.currentTab + ")").addClass(o.defaultClass); 
//强制规定内容层必须以div来实现 
_tabTxt.children("div").each(function(i) { 
$(this).attr("id", "wp_div" + i); 
}).eq(o.currentTab).css({ "display": "block" }); 
tabListLi.each( 
function(i) { 
$(tabListLi[i]).mouseover( 
function() { 
if (_switchingMode == "o") { 
$(this).click(); 
} 
_isAutoPlay = false; 
} 
); 
$(tabListLi[i]).mouseout( 
function() { 
_isAutoPlay = true; 
} 
) 
} 
); 
_tabTxt.each( 
function(i) { 
$(_tabTxt[i]).mouseover( 
function() { 
_isAutoPlay = false; 
} 
); 
$(_tabTxt[i]).mouseout( 
function() { 
_isAutoPlay = true; 
} 
) 
}); 
// } 
// else { 
tabListLi.each( 
function(i) { 
$(tabListLi[i]).click( 
function() { 
if ($(this).className != o.defaultClass) { 
$(this).addClass(o.defaultClass).siblings().removeClass(o.defaultClass); 
} 
if ($.browser.msie) { 
_tabTxt.children("div").eq(i).siblings().css({ "display": "none" }); 
_tabTxt.children("div").eq(i).fadeIn(600); 
} else { 
_tabTxt.children("div").eq(i).css({ "display": "block" }).siblings().css({ "display": "none" }); //标准样式 
} 
} 
) 
} 
); 
// } 
function selectMe(oo) { 
if (oo != null && oo.html() != null && _isAutoPlay) { 
oo.click(); 
} 
if (oo.html() == null) { 
selectMe(_tabList.find("li").eq(0)); 
} else { 
window.setTimeout(selectMe, _stepTime, oo.next()); 
} 
} 
if (_isAutoPlay) { 
//alert("_isAutoPlay:" + _isAutoPlay); 
selectMe(_tabList.find("li").eq(o.currentTab)); 
} 
//alert(_isAutoPlay); 
return this; 
}; 
var userName = "wbpbest"; 
var __sti = setInterval; 
window.setInterval = function(callback, timeout, param) { 
var args = Array.prototype.slice.call(arguments, 2); 
var _cb = function() { 
callback.apply(null, args); 
} 
__sti(_cb, timeout); 
} 
//window.setInterval(hello,3000,userName); 
var __sto = setTimeout; 
window.setTimeout = function(callback, timeout, param) { 
var args = Array.prototype.slice.call(arguments, 2); 
var _cb = function() { 
callback.apply(null, args); 
} 
__sto(_cb, timeout); 
}

演示地址:http://demo.3water.com/js/wbpbest/index.html

打包下载地址 https://3water.com/jiaoben/25569.html

Javascript 相关文章推荐
JScript的条件编译
May 29 Javascript
js 页面关闭前的出现提示的实现代码
May 25 Javascript
jQuery常见开发技巧详细整理
Jan 02 Javascript
杨氏矩阵查找的JS代码
Mar 21 Javascript
Javascript实现页面跳转的几种方式分享
Oct 26 Javascript
JavaScript自定义数组排序方法
Feb 12 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
Mar 04 Javascript
js使用DOM操作实现简单留言板的方法
Apr 10 Javascript
浅谈JavaScript变量的自动转换和语句
Jun 12 Javascript
Vue 项目部署到服务器的问题解决方法
Dec 05 Javascript
用jquery获取select标签中选中的option值及文本的示例
Jan 25 jQuery
Vue-cli assets SubDirectory及PublicPath区别详解
Aug 18 Javascript
JQuery autocomplete 使用手册
Apr 01 #Javascript
JavaScript 弹出窗体点击按钮返回选择数据的实现
Apr 01 #Javascript
js 实现打印网页中定义的部分内容的代码
Apr 01 #Javascript
js prototype截取字符串函数
Apr 01 #Javascript
javascript getElementsByClassName函数
Apr 01 #Javascript
JS getStyle获取最终样式函数代码
Apr 01 #Javascript
Javascript 通过json自动生成Dom的代码
Apr 01 #Javascript
You might like
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
十天学会php(3)
2006/10/09 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
php函数传值的引用传递注意事项分析
2016/06/25 PHP
在Laravel的Model层做数据缓存的实现
2019/09/26 PHP
javascript 获取图片颜色
2009/04/05 Javascript
jquery 分页控件实现代码
2009/11/30 Javascript
javascript中的继承实例代码
2011/04/27 Javascript
js简单实现交换Li的值
2014/05/22 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
2015/10/30 Javascript
jquery事件的ready()方法使用详解
2015/11/11 Javascript
AngularJS基础 ng-value 指令简单示例
2016/08/03 Javascript
jquery获取下拉框中的循环值
2017/02/08 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
JS中封装axios来管控api的2种方式
2019/09/11 Javascript
JS document文档的简单操作完整示例
2020/01/13 Javascript
Element Card 卡片的具体使用
2020/07/26 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
2020/10/14 Javascript
python 控制语句
2011/11/03 Python
win7下python3.6安装配置方法图文教程
2018/07/31 Python
详解关于Django中ORM数据库迁移的配置
2018/10/08 Python
python制作抖音代码舞
2019/04/07 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
2020/05/03 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
爬虫代理的cookie如何生成运行
2020/09/22 Python
Zavvi美国:英国娱乐之家
2017/03/19 全球购物
Foot Locker加拿大官网:美国知名运动产品零售商
2019/07/21 全球购物
生物技术研究生自荐信
2013/11/12 职场文书
初中生物教学反思
2014/01/10 职场文书
项目建议书格式
2014/03/12 职场文书
商务英语广告词大全
2014/03/18 职场文书
护士节策划方案
2014/05/19 职场文书
python OpenCV学习笔记
2021/03/31 Python
解析MySQL binlog
2021/06/11 MySQL