在VS中,我们能打开多页签,并在不同的页签之间进行浏览和操作,这一功能通过JQuery插件CleverTabs也能实现此效果。CleverTabs下载请点击这里:JQuery CleverTabs

本文采用ASP.NET MVC技术实现效果:要在布局页中点击不同的选择栏,根据不同的选择栏打开不同的网页链接而新增不同页签效果。首先新建 一个空的MVC项目,并在_Layout布局页中引入JS和CSS文件,如下图所示:

<script src="~/Scripts/CleverTabs/CleverTabs/scripts/jquery.js"></script>//JS文件是必须的
<link href="~/Scripts/CleverTabs/CleverTabs/context/themes/base/jquery-ui.css" rel="stylesheet" />
<link href="~/Scripts/CleverTabs/CleverTabs/context/themes/base/style.css" rel="stylesheet" />
<script src="~/Scripts/CleverTabs/CleverTabs/scripts/jquery-ui.js"></script>
<script src="~/Scripts/CleverTabs/CleverTabs/scripts/jquery.cleverTabs.js"></script>
<script src="~/Scripts/CleverTabs/CleverTabs/scripts/jquery.contextMenu.js"></script>

页面的HTML代码如下图所示:

  <div class="container-fluid"><div class="panel panel-primary"><div class="panel-body col-md-2" style="margin-top:50px;margin-left:50px"><div class="list-group"><a class="list-group-item" style="cursor:pointer" onclick="clickone()"><h4 class="list-group-item-heading">应用二</h4><p class="list-group-item-text">应用二描述</p></a><a class="list-group-item disabled"><h4 class="list-group-item-heading">应用三(失效)</h4><p class="list-group-item-text">应用三描述</p></a><a class="list-group-item" style="cursor:pointer" onclick="clicktwo()"><h4 class="list-group-item-heading">应用四</h4><p class="list-group-item-text">应用四描述</p></a><a class="list-group-item"><h4 class="list-group-item-heading">应用五</h4><p class="list-group-item-text">应用五描述</p></a><a class="list-group-item"><h4 class="list-group-item-heading">应用六</h4><p class="list-group-item-text">应用六描述</p></a></div></div><div class="panel-body col-md-9"><div id="tabs" style="margin-top:50px">@*定义id为tabs,将页面放入tabs标签中*@<ul>@RenderBody()</ul></div></div></div></div>

以上HTML代码中,点击应用二和应用四触发click事件从而打开不同的页签。 JS代码如下图所示:

<script type="text/javascript">var tabs;$(document).ready(function () {var h = $(document).height() - 100;$("#tabs").height(h); //如果不设置高度的话,它默认并不是发100%占满屏幕的,所以我这里使用了计算的方式,初始化界面高度tabs = $('#tabs').cleverTabs();$(window).bind('resize', function () {tabs.resizePanelContainer();});});function clickone() {tabs.add({id: 'uniqueId',//id必须唯一url: "/Home/About",label: "关于",});}function clicktwo(){tabs.add({id: 'uniqueId2',url: "/Home/Contact",label: "联系",});}
</script>

运行效果如下图所示:在未点击应用二和应用四的时候:

点击应用二时:

点击应用四时:

就这样,一个多页签的效果就实现了,可见很多JQuery的控件还是很强大的。并附上CleverTabs的相关说明:

初级应用说明:

HTML代码:

<div id="tabs"><ul></ul></div>

JS代码:

<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内唯一的idid: '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>

当使用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版本较早,部分语法现在的jQuery版本已经不支持了。需要手动修改源JS文件。

利用JQuery插件CleverTabs实现多页签打开效果相关推荐

  1. 使用Jquery插件bTabs实现多页签打开效果

    官网地址:点击这里进入官网 资源导入 <link rel="stylesheet" href="b.tabs.css" type="text/c ...

  2. 利用jquery插件的图片剪切上传功能

    为了使用户能自定义个人头像,需要提供一个对上传图片的截图功能,当前很多网站特别是SNS类网站都提供这样的功能,非常实用.主要实现的形式有两种,一种是flash截图,另一种就是javascript截图, ...

  3. Jquery UI Tabs 动态添加页签,并跳转到新页签

    需求: 1.tabs默认只有一个页签,但是需要点击某按钮,动态添加页签(添加多个) 2.tabs动态添加页签后,需要跳转到新添加的页签 查找tabs api以及tabs的源码后,发现tabs没有直接实 ...

  4. 不得不爱开源 Wijmo jQuery 插件集(4)-【手风琴效果】(附页面展示和源码)

    园子中的朋友大家好.在上一篇文章中我们,给大家介绍了 Wijmo Menu 的特性及使用方法.感谢园子中朋友的支持,朋友们的支持给我们写这一系列文章提供了很大的动力.在这篇文章中我们将介绍 Accor ...

  5. 利用jQuery插件扩展识别浏览器内核与外壳的类型和版本

    jquery.browsertype-1.0.js /** * jQuery插件开发方法二:第一步:插件定义*/ jQuery.myPlugin = {//获得浏览器的内核与外壳的类型和版本 Clie ...

  6. html5 滚屏效果 插件,jQuery插件fullPage.js实现全屏滚动效果

    本文实例为大家分享了全屏滚动插件fullPage.js的具体使用方法,供大家参考,具体内容如下 0.01 基本演示  的HTML 布局 以及js 代码 //需要连接 连接的三个文件 //css文件 / ...

  7. html如何实现切换效果,纯CSS实现页签切换效果

    主要运用了 CSS3 的 :checked 选择器, 代码结构跟使用js差不多,只是多了几个radio, 不知道性能上是js快还是css快呢? CSS3 TAB body { font-family: ...

  8. 纯CSS实现页签切换效果

    主要运用了 CSS3 的 :checked 选择器, 代码结构跟使用js差不多,只是多了几个radio, 不知道性能上是js快还是css快呢? codepen地址:http://codepen.io/ ...

  9. 源码下载java利用jquery和smartupload实现头像上传切割效果

    题记:写这篇博客要主是加深自己对源码下载的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢. 效果图如下: 每日一道理 流逝的日子像一片片凋零的枯叶与花瓣,渐去渐远的是青春的纯情与浪漫 ...

最新文章

  1. 容器使用之vector
  2. 2008-07-29
  3. Block 的循环引用
  4. android cursor 实例化,为什么Cursor放到带参数带返回值方法里就报错?
  5. Unity 高清渲染管线 ShaderGraph 实现简单的表面水流效果
  6. 为何Windows版QuickTime突然寿终正寝?
  7. Ajax基本案例详解之$.ajax的实现
  8. ASP.NET站点跨子域名单点登陆(SSO)的实现
  9. composer 依赖包版本冲突_composer快速入门教程
  10. 基础的shell编程问题(一)
  11. WinForm邮件内容编辑器的简单实现
  12. 组策略最佳实践之“降龙十八掌”
  13. 推荐 | 微软SAR近邻协同过滤算法相关问题(三)
  14. CENTOS6.6上搭建单实例ORACLE12C
  15. c语言车牌号5位数,为何有的车牌是五位数字,有的加英文字母?终于知道原因了!...
  16. 一文读懂斗鱼上市:直播江湖风云再起,强行盈利背后的艰难上市路
  17. 虚拟机 桥接模式和NAT模式下的ip地址、更改kali虚拟机的网络适配器
  18. 小型oa服务器系统,大型、中小型企业OA系统实施差异对比
  19. Java奖学金评定系统设计与实现
  20. Python面向对象06/反射/双下方法

热门文章

  1. [看书笔记]《深入java虚拟机》——java体系结构(二)
  2. 人生中最【无用】的二十件事
  3. C++primer习题--第3章
  4. 【Android开发】之Fragment与Acitvity通信
  5. 混乱开发,既伤身体又伤感情
  6. jQuery常用方法总结(转)
  7. Mybatis源码之与Spring集成包
  8. mysql启多_MySQL启多个实例
  9. python csv模块用法_python使用csv模块如何将数据存放在一张表的不同行?
  10. vue 监听map数组变化_解决vue无法侦听数组及对象属性的变化问题