jQuery 选项卡 CleverTabs
CleverTabs是一款jQuery插件,所需jQuery版本:1.6.1,jQuery UI样式版本:1.8.13;其功能为创建jQuery UI风格的Tab用于显示iframe。
本示例中符加了jQuery.contextMenu插件,我修改了其样式,使用了jQuery UI的皮肤
效果如下图:

初级应用示例:
HTML代码:
- <div id="tabs"><ul></ul></div>
Javascript代码:
- <script type="text/javascript">
- $(function(){
- tabs = $('#tabs').cleverTabs();
- tabs.add({
- url:'http://think8848.cnblogs.com',
- label:'think8848'
- });
- });
- </script>
CleverTabs详细说明:
CleverTabs为所有Tab的容器
- var tabs;
- <script type="text/javascript">
- $(function(){
- tabs = $('#tabs').cleverTabs({
- //是否安装右键菜单(默认: true)
- setupContextMenu:true,
- //右键菜单定义, 右键菜单功能由jquery.contextMenu插件提供
- //详见: http://abeautifulsite.net/2008/09/jquery-context-menu-plugin/
- //本插件中对原contextMenu插件中的样式做了修改,使用了jQuery UI皮肤
- contextMenu:{
- element: $('#contextMenuElementId'),
- handler:function(action, el, pos){/*do something...*/}
- },
- //开启Tab后是否锁定(不允许关闭,默认: false)
- lock:false,
- //开启Tab后是否禁用(不允许激活和操作iframe内容,默认: false)
- disable:false,
- //当tabs中只有一个Tab时,是否锁定该Tab(默认: true)
- lockOnlyOne:true,
- //显示iframe的容器(默认创建在tabs元素中)
- panelContainer: $('#panelContainerElementId')/*,
- 其中
- tabHeaderTemplate: '', //(Tab用于控制的头模板)
- tabPanelTemplate: '', //(Tab用于显示的Panel模板)
- uidGenerator: function() {} //(Tab唯一id生成器)
- 功能现在不启用,等有时间完善后再启用*/
- });
- tabs.add({
- url:'http://think8848.cnblogs.com',
- label:'think8848'
- });
- });
- </script>
CleverTabs.add方法
添加一个新的Tab并使之成为激活状态,如果将要添加的url已经存在,则会激活该Tab
- <script type="text/javascript">
- var tabs =('#tabs').cleverTabs();
- tabs.add({
- //必须是在tabs内唯一的id
- id:'uniqueId',
- //将要在iframe的src属性设置的值
- url:'iframe.src',
- //显示在Tab头上的文字
- label:'tab header',
- //关闭本Tab时需要刷新的Tab的url(默认: null)
- closeREfresh:'tab url',
- //关闭本Tab时需要激活的Tab的url(默认: null)
- closeActivate:'tab url',
- //关闭本Tab时需要执行的回调函数
- callback:function(){/*do something*/}
- });
- </script>
CleverTabs.getCurrentTab方法
获取当前处于激活状态的Tab
- <script type="text/javascript">
- var tabs =('#tabs').cleverTabs();
- var tab = tabs.getCurrentTab();
- </script>
CleverTabs.getTabByUrl方法
获取指定url的Tab实例
- <script type="text/javascript">
- var tabs =('#tabs').cleverTabs();
- var tab = tabs.getTabByUrl('http://think8848.cnblogs.com');
- </script>
CleverTabs.clear方法
关闭tabs内所有未锁定的Tab
- <script type="text/javascript">
- var tabs =('#tabs').cleverTabs();
- var tab = tabs.clear();
- </script>
CleverTab.deactivate方法
使Tab页面处于未激活状态,但不建议在代码中使用
CleverTab.prevTab方法:
获取该Tab之前的Tab
- <script type="text/javascript">
- var tabs =('#tabs').cleverTabs();
- var tab = tabs.getTabByUrl('http://think8848.cnblogs.com');
- var prevTab = tab.prevTab();
- </script>
CleverTab.nextTab方法
获取该Tab之后的Tab
- <script type="text/javascript">
- var tabs =('#tabs').cleverTabs();
- var tab = tabs.getTabByUrl('http://think8848.cnblogs.com');
- var prevTab = tab.nextTab();
- </script>
CleverTab.kill方法
从tabs中移移该Tab
- <script type="text/javascript">
- var tabs =('#tabs').cleverTabs();
- var tab = tabs.getTabByUrl('http://think8848.cnblogs.com');
- tab.kill();
- </script>
CleverTab.refresh方法
刷新该Tab的iframe中的内容
- <script type="text/javascript">
- var tabs =('#tabs').cleverTabs();
- var tab = tabs.getTabByUrl('http://think8848.cnblogs.com');
- tab.refresh();
- </script>
CleverTab.setDisable方法
设置该Tab的disabled属性,设置disabled为true后,自动设置该Tab的locked属性为true
- <script type="text/javascript">
- var tabs =('#tabs').cleverTabs();
- var tab = tabs.getTabByUrl('http://think8848.cnblogs.com');
- //参数true为禁用,false或不提供值为启用
- tab.setDisable(true);
- </script>
CleverTab.setLock方法
设置该Tab的locked属性,设置locked为true后,该Tab的不允许关闭
- <script type="text/javascript">
- var tabs =('#tabs').cleverTabs();
- var tab = tabs.getTabByUrl('http://think8848.cnblogs.com');
- //参数true为锁定,false或不提供值为解锁
- tab.setLock(true);
- </script>
"改变不了别人,就改变自已吧"
在现在的页面中,多数情况下都可能由几部分组成,比如:Banner,Navigator,Content等,而为了工作区域变的更大,很多时候诸如Banner,Navigator或者其他的Panel都会收起来(Collapse),这个时候问题来了,当初我给tabs定义了width: 80%; height: 90%; 现在tabs的width和height发生了变化,可是内部的Tab页面还没有收到这个变化,它还是按照之前的size显示呢,更要命的是resize事件居然只有window和body才有,div居然不支持此事件!真不知道他们是怎么想的...在之前的cleverTabs中,我绑定了window.resize事件,但是问题在于我上面举的例子中,window的size实际上没有发生变化,甚至body也没有,但是tabs的大小发生变化了,在这种情况下,如果您使用了默认的tabPenelContainer,那一定得处理tabs的resize事件,可是tabs就是一个div嘛,哪来的resize?昨晚在睡前突然想到个办法,既然能"改变不了别人,就改变自已",那么就能"自已处理不了的事,就交给别人去处理吧"。把resize“外包”出去算了。于是对原来的代码做了修改,在CleverTabs构造函数中,为CleverTabs的prototype添加了resizePanelContainer函数,tabs自已不知道发生了resize事件,但总归有人知道发生了,谁知道谁调用,所谓的能者多劳?
CleverTabs.resizePanelContainer方法:
当使用CleverTabs默认的PanelContainer时,重新设置PanelContainer的size。
- <script type="text/javascript">
- var tabs;
- $(function(){
- tabs = $('#tabs').cleverTabs();
- $(window).bind('resize',function(){
- //当发生window.resize事件时,重新默认的tabs的PanelContainer的大小
- tabs.resizePanelContainer();
- });
- </script>
jQuery 选项卡 CleverTabs的更多相关文章
- 实用的Jquery选项卡TAB
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 30个实用的jQuery选项卡/导航教程推荐
很多网站设计中都使用了选项卡(tabs),在制作选项卡时应用jQuery能够实现很多炫酷的过渡和动画效果.本文为你介绍30个实用的jQuery选项卡教程,希望对你有帮助. 1. Animated Ta ...
- click事件和jquery选项卡
一. click事件 实现效果是点击切换按钮,可以重复的切换背景色 <!DOCTYPE html> <html lang="en"> <head> ...
- jQuery选项卡tabulous
jQuery选项卡tabulous,jQuery,选项卡,tab标签切换代码,扁平设计,jQuery选项卡tabulous是一款支持Scale.Slide.Scale Up.Flip等效果jquery ...
- 简单的jquery选项卡效果
html部分 <ul class="tab"> <li>最新</li> <li class="cur">热门&l ...
- jquery选项卡
用jquery实现选项卡功能 css部分: html部分: 记得一定要引入jquery文件 jquery部分:
- jQuery选项卡插件
html结构 <ul id="tabs" class="tabs"> <li data-tab="users">Us ...
- javascript与jQuery选项卡效果
HTML结构: <!doctype html><html><head><meta charset="utf-8"><title ...
- 【特效】jquery选项卡插件,页面多个选项卡统一调用
把选项卡整合了一下,写成个插件,这样可以整个站,或整个页面有多个选项卡时,统一调用.代码的具体注意事项已经写进注释了.用于js获取元素的class名称必须有,选项卡本身的样式,另再取一个名字来设置(本 ...
随机推荐
- No module named _tkinter
https://www.douban.com/note/524197380/?type=like
- 20144303《Java程序设计》第10周学习总结
20144303<Java程序设计>第10周学习总结 教材学习内容总结 网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程 ...
- 事务的学习,从jdbc开始:jdbc对事务的支持与实现
在使用spring对项目进行开发时,所有的事务都是由spring来管理的.这样一来我们就可以不需要操心事务,可以专心的处理业务代码. 但是,事务的底层究竟是如何实现的呢?那就从jdbc开始学习. 在使 ...
- window 中安装 redis的遇到的一此bug
一.下载 链接:https://github.com/MicrosoftArchive/redis/releases 说明: 如果是是下载msi版本的话会默认帮我们配置好测试 环境,如果是下载zi ...
- 03_MySQL DQL_排序查询
#进阶3:排序查询/*语法: select 查询列表 from 表名 [where 筛选条件] order by 排序列表 [asc|desc] 特点: 1.asc升序,desc降序, 如果都不写,默 ...
- [C# 开发技巧系列]如何动态设置屏幕分辨率
首先,大家应该明确,现在没有可用的API来给我们动态地设置屏幕分辨率,我们要实现这个需求,我们只能在C#程序中调用Win32 API 函数来解决这个问题的,这里用C#代码调用Win32 API 就涉及 ...
- Python基础笔记系列十三:socket网络编程
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!!使用python编写一个简易的服务端程序和客户端程序,启动服务端和客户端(监 ...
- codeforces781C Underground Lab
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- HTML之实现页面缓存
一般来说,对于html页面,一个站点,每个页面都会有相同的公共文件,比如页面的头部.尾部.侧边栏目.公共JS等.访问站点下的每一个页面,相同的公共文件,都需要重复从服务器下载.从性能和带宽角度看,重复 ...
- 数据库原理及应用-数据库管理系统 DBMS
2018-02-20 14:35:34 数据库管理系统(英语:database management system,缩写:DBMS) 是一种针对对象数据库,为管理数据库而设计的大型电脑软件管理系统.具 ...