`
寄生虫
  • 浏览: 74983 次
  • 性别: Icon_minigender_1
  • 来自: 不让你们知道
文章分类
社区版块
存档分类
最新评论

jQuery模仿ExtJS之TabPanel

阅读更多

 

被copy了,谢谢帮我传播出去啊,嘿嘿,我是有够懒的。

 http://www.web-delicious.com/jquery-plugins-demo/wdScrollTab/docs/index.htm

 

fix_0_1:修改了选项卡内容层的HTML没有设置body backgroundColor时,在FF中透明的BUG;
fix_0_2:添加了窗口resize,TabPanel也随之resize(注:resize触发条件是,TabPanel必须渲染到body上,不设置宽度则会resize宽度,不设置高度则会resize高度);
fix_0_3:可以在任何容器中自动缩放,随父容器大小改变而改变,但必须保证父容器宽度为百分比或高度为百分比,如果选项卡组件实例化时设置了宽度或高度,则不自动改变;
fix_0_4:修正了一些小问题,组件更加稳定和易用;
fix_0_5:有朋友提出需要设置render的宽度和高度,选项卡组件跟随其变化,已经提交;

 

 

 

 

1.帮助: 

TabPanel(选项卡组件)

参数说明

renderTo<string | jQuery object | NULL> 渲染到某容器

将选项卡组件渲染到某容器,参数类型可以为字符串,也可以为jQuery所加载的对象,如果为声明该参数,组件默认的承载容器为BODY

items<array> 选项卡元素集合

选项卡组件渲染后就会显示的选项卡元素集合,具体参数请查看选项卡元素

width<number> 宽度

选项卡组件的总宽度,默认400px

height<number> 高度

选项卡组件中页面显示层的高度,默认300px

border<string> 是否显示边框

嵌套显示选项卡时,会出现重复边框的情况,影响美观,将border设置为”none”,则可以避免,默认显示边框,不接受除”none”之外的参数值。

active<number> 渲染后默认激活哪个选项卡元素

下标以0为开始,默认为0

maxLength<number> 最多显示几个选项卡元素

-1为无限,默认为-1

tabs<return array> 获得选项卡组件所有的选项卡元素

可根据需要获得选项卡组件的所有选项卡元素。

公共方法

addTab(object) 添加一个选项卡元素

动态向选项卡组件中添加一个选项卡元素。

flush(string | number) 刷新选项卡元素的内容

将选项卡元素的内容刷新,参数可以为选项卡元素的ID或下标。

show(string | number) 显示选项卡元素

显示制定选项卡元素,参数可以为选项卡元素的ID或下标。

Kill(string | number) 关闭选项卡元素

关闭选项卡元素,参数可以为选项卡元素的ID或下标。

getTabsCount()<return number> 获得选项卡元素数量

getTitle(string | number) <return string> 获得选项卡元素的标题

setTitle(string | number, string) 设置选项卡元素的标题

getContent(string | number) <return string> 获得选项卡元素的内容

setContent(string | number, string) 设置选项卡元素的内容

getDisable(string | number) <return boolean> 选项卡元素是否禁用

setDisable(string | number) 设置选项卡元素是否禁用

getCloseable(string | number) <return boolean> 选项卡元素是否可关闭

setCloseable(string | number, boolean) 设置选项卡元素是否可关闭

getActiveTab()<return object> 获得被激活的选项卡元素

使用方法

页面引入jQuery.jsTabPanel.jsFader.jsTabPanel.css

new TabPanel({

  renderTo:'tabs',

  width: '100%',

  height: '500px',

  active: 0,

  items: [{

    title:'工作中心',

    html:'<iframe width="100%" height="100%" frameborder="0"></iframe>',

    closable: false

  }]

});

TabPanel item(选项卡元素)

参数说明

id<string> 元素ID

必须唯一,或者不设置该参数,否则将无法添加到选项卡组件中,默认自动生成。

title<string> 元素标题

可以动态设置。

closeable<boolean> 是否可关闭

true可关闭,false不可关闭,默认为true

 

2.效果如图:

 



  

注:

还顺便封装了Toolbar,WindowPanel等控件

 

 



 



 


 

 

 

 

 

 

 

  • 大小: 16.5 KB
  • 大小: 41.6 KB
  • 大小: 41.6 KB
  • 大小: 7 KB
  • 大小: 7 KB
  • 大小: 2.9 KB
  • 大小: 2.9 KB
  • 大小: 2.2 KB
  • 大小: 2.2 KB
  • 大小: 9.4 KB
分享到:
评论
94 楼 nell_zn82 2010-03-30  
滚动条的问题:
1.scrolled在TabPanel.js中设置的是false,不知道是显示滚动条还是不显示滚动条?
2.如果高度设置:100%的话,滚动条就不显示了,不知道这个问题是存在的还是BUG?如果高度为100%的话,滚动条能显示吗?怎么设置呢?
93 楼 nell_zn82 2010-03-30  
寄生虫 写道
嗯,你应该用的是旧版本,可以再下载一下最新的试试。

谢谢你寄生虫,这个问题困扰我很久了,换了个新版本终于解决了。建议您将您发布的版本增加个版本号或者版本日期。呵呵,谢谢。
92 楼 xianglin2004 2010-03-30  
楼主您好,我用了你给的js。但是发现了个问题不知道怎么解决?请帮忙。
问题是我在iframe中加载了一个页面,但是这个页面高度估计在2000px.这时候iframe就出现了垂直滚动条,但是不想要这个滚动条,想让这个滚动条出现在浏览器的最外面。我就想iframe的scrolling设置为no。这是iframe中加载的页面只能显示一部分。这怎么解决啊?期待您的回答。谢谢。

楼主帮忙解决下吧。我挺着急。

我的浏览器是ie8
91 楼 寄生虫 2010-03-30  
嗯,你应该用的是旧版本,可以再下载一下最新的试试。
90 楼 nell_zn82 2010-03-29  
更正上面的语法:
items: [{   
    id:'workid',   
    title:'工作中心',   
    html:content,   
    closable: false  
  },{   
   id:'userid',   
    title:'用户中心',   
    html:content1,   
    closable: false  
  }]   



实在不好意思,打错了,
89 楼 nell_zn82 2010-03-29  
寄生虫 写道
nell_zn82 写道
$(function(){
  var tabPanel;
//初始化默认加载第一个页签
  tabs('tab',0,'<iframe src="工作中心.html" width="100%" height="100%" frameborder="0"></iframe>','');
function tabs(divId,activenum,content,content1){
  tabPanel = new TabPanel({
  renderTo:divId,
  width: '100%',
  height: '100%',
  active: activenum,
  items: [{
    id:'workid',
    title:'工作中心',
    html:content,
    closable: false
  }],[{
   id:'userid',
    title:'用户中心',
    html:content1,
    closable: false
  }]
 });
}
});

//给用户中心页签添加click事件
$(#userid).click(function(){
  tabs('tab',1,'','<iframe src="用户中心.html" width="100%" height="100%" frameborder="0"></iframe>');
});


我的需求就是不加载所有的页签页面,根据点击某一个页签而加载相关的页签内容。
问题:初始化默认加载第一个页签可以成功加载,点击用户中心页签,该页签内容不显示了。


给需要延迟加载的item增加 lazyload : true 属性。
{
          title:'数据范围',
          html:'<iframe id="users" name="users" src="xxx" width="100%" height="100%" frameborder="0"></iframe>',
          closable : false,
          lazyload : true,
          icon:'../../image/icon/datas.gif'
        }


改你的代码就是:
$(function(){  
  var tabPanel;  
//初始化默认加载第一个页签  
  tabs('tab',0,'<iframe src="工作中心.html" width="100%" height="100%" frameborder="0"></iframe>','<iframe src="用户中心.html" width="100%" height="100%" frameborder="0"></iframe>');  
function tabs(divId,activenum,content,content1){  
  tabPanel = new TabPanel({  
  renderTo:divId,  
  width: '100%',  
  height: '100%',  
  active: activenum,  
  items: [{  
    id:'workid',  
    title:'工作中心',  
    html:content,  
    closable: false  
  }],[{  
   id:'userid',  
    title:'用户中心',  
    html:content1,  
    closable: false,
    lazyload: true
  }]  
 });  
}  
}); 



感谢这么及时给我回复,谢谢你,你提供的方法我试验了,没有起作用。
我在每个页签调用的页面alert输出,结果加载页面时,所有页面alert都输出了。说明还是没有延迟加载。
另外我在TabPanel.js文件里没有找到lazyload: true定义的方法。是不是我用的是旧版本???
88 楼 xianglin2004 2010-03-29  
楼主您好,我用了你给的js。但是发现了个问题不知道怎么解决?请帮忙。
问题是我在iframe中加载了一个页面,但是这个页面高度估计在2000px.这时候iframe就出现了垂直滚动条,但是不想要这个滚动条,想让这个滚动条出现在浏览器的最外面。我就想iframe的scrolling设置为no。这是iframe中加载的页面只能显示一部分。这怎么解决啊?期待您的回答。谢谢。

楼主帮忙解决下吧。我挺着急。
87 楼 寄生虫 2010-03-29  
nell_zn82 写道
$(function(){
  var tabPanel;
//初始化默认加载第一个页签
  tabs('tab',0,'<iframe src="工作中心.html" width="100%" height="100%" frameborder="0"></iframe>','');
function tabs(divId,activenum,content,content1){
  tabPanel = new TabPanel({
  renderTo:divId,
  width: '100%',
  height: '100%',
  active: activenum,
  items: [{
    id:'workid',
    title:'工作中心',
    html:content,
    closable: false
  }],[{
   id:'userid',
    title:'用户中心',
    html:content1,
    closable: false
  }]
 });
}
});

//给用户中心页签添加click事件
$(#userid).click(function(){
  tabs('tab',1,'','<iframe src="用户中心.html" width="100%" height="100%" frameborder="0"></iframe>');
});


我的需求就是不加载所有的页签页面,根据点击某一个页签而加载相关的页签内容。
问题:初始化默认加载第一个页签可以成功加载,点击用户中心页签,该页签内容不显示了。


给需要延迟加载的item增加 lazyload : true 属性。
{
          title:'数据范围',
          html:'<iframe id="users" name="users" src="xxx" width="100%" height="100%" frameborder="0"></iframe>',
          closable : false,
          lazyload : true,
          icon:'../../image/icon/datas.gif'
        }


改你的代码就是:
$(function(){  
  var tabPanel;  
//初始化默认加载第一个页签  
  tabs('tab',0,'<iframe src="工作中心.html" width="100%" height="100%" frameborder="0"></iframe>','<iframe src="用户中心.html" width="100%" height="100%" frameborder="0"></iframe>');  
function tabs(divId,activenum,content,content1){  
  tabPanel = new TabPanel({  
  renderTo:divId,  
  width: '100%',  
  height: '100%',  
  active: activenum,  
  items: [{  
    id:'workid',  
    title:'工作中心',  
    html:content,  
    closable: false  
  }],[{  
   id:'userid',  
    title:'用户中心',  
    html:content1,  
    closable: false,
    lazyload: true
  }]  
 });  
}  
}); 
86 楼 nell_zn82 2010-03-29  
$(function(){
  var tabPanel;
//初始化默认加载第一个页签
  tabs('tab',0,'<iframe src="工作中心.html" width="100%" height="100%" frameborder="0"></iframe>','');
function tabs(divId,activenum,content,content1){
  tabPanel = new TabPanel({
  renderTo:divId,
  width: '100%',
  height: '100%',
  active: activenum,
  items: [{
    id:'workid',
    title:'工作中心',
    html:content,
    closable: false
  }],[{
   id:'userid',
    title:'用户中心',
    html:content1,
    closable: false
  }]
 });
}
});

//给用户中心页签添加click事件
$(#userid).click(function(){
  tabs('tab',1,'','<iframe src="用户中心.html" width="100%" height="100%" frameborder="0"></iframe>');
});


我的需求就是不加载所有的页签页面,根据点击某一个页签而加载相关的页签内容。
问题:初始化默认加载第一个页签可以成功加载,点击用户中心页签,该页签内容不显示了。
85 楼 vasuer 2010-03-26  
楼主,请问下打开一个选项卡的时候 怎样吧打开的页面设为焦点啊? 或者点击选项卡上的标题的时候也是那页面的焦点啊?
84 楼 marc0658 2010-03-15  
唉呀.lz太强大了
83 楼 寄生虫 2010-03-12  
LookAtPic 写道
怎么有点觉得这个东西是用了 EXTJS本身的类库,如 Tab用法也和EXTJS一样。LZ是不是用JQUERY调用EXTJS中的类库。

你看一下代码不就知道了吗。呵呵
82 楼 LookAtPic 2010-03-12  
怎么有点觉得这个东西是用了 EXTJS本身的类库,如 Tab用法也和EXTJS一样。LZ是不是用JQUERY调用EXTJS中的类库。
81 楼 shijian0306 2010-03-11  
寄生虫 写道
coolflag 写道
请问,怎么改动TabPanel的宽度。因为我左边放了功能树,功能树能够伸缩,当缩起来的时候,tabpanel并不能够随我控制改变宽度。我尝试了        $("#mainPanel").width($("#mainPanel").width()+175);
$("#mainPanel").resize();
这个TabPanel消失了。

嗯,这个功能我今天下午加上,稍候更新。



哥们,这个还是没有好啊,能否给一个自适应宽度的demo,我调整半天没有搞出来出来
80 楼 matychen 2010-03-10  
楼主用的弹出框的插件名字叫什么?还是就用的jQuery的dialog?
79 楼 vasuer 2010-03-10  
楼主 怎么让TabPanel自适窗口大小啊?
78 楼 lijingbo9512 2010-03-03  
我看到了图片中的表格,是怎么做的?能否共享一下?还有一个问题就是WindowPanel如何访问父窗口上的控件,以便在做一些动作时候给父窗口返回一些值?谢谢!
77 楼 coolflag 2010-02-10  
收到更新,非常感谢,:)
76 楼 Songjun37 2010-02-08  
楼主的我先收下 看看了好啊。感觉挺不错的也
75 楼 寄生虫 2010-02-06  
coolflag 写道
请问,怎么改动TabPanel的宽度。因为我左边放了功能树,功能树能够伸缩,当缩起来的时候,tabpanel并不能够随我控制改变宽度。我尝试了        $("#mainPanel").width($("#mainPanel").width()+175);
$("#mainPanel").resize();
这个TabPanel消失了。

嗯,这个功能我今天下午加上,稍候更新。

相关推荐

    jQuery模仿ExtJS之TabPanel最新

    页面引入jQuery.js、TabPanel.js、Fader.js、TabPanel.css new TabPanel({ renderTo:'tabs', width: '100%', height: '500px', active: 0, items: [{ title:'工作中心', ...

    extjs4.2.1 tabPanel刷新及关闭标签

    关闭当前标签页是`TabPanel`常见的需求之一,可以通过如下方式实现: ```javascript onClose: function() { // 获取当前激活的标签项 var item = this.tabPanel.getActiveItem(); // 从 TabPanel 中移除当前...

    Extjs4.2 设置tabpanel当前活动页签的样式

    Extjs4.2 设置tabpanel当前活动页签的样式 Extjs是一个流行的JavaScript框架,用于构建丰富互联网应用程序(RIA)。其中,tabpanel是Extjs中一个常用的控件,用于显示多个面板。设置tabpanel当前活动页签的样式是...

    Ajax(Jquery与ExtJs)

    Ajax(Jquery与ExtJs) 框架对比 web前端开发

    ExtJS TabPanel 标签操作

    在ExtJS中,TabPanel是一个容器,可以包含多个Panel(或称之为卡片),每个Panel对应一个标签页。创建一个基本的TabPanel需要指定` xtype: 'tabpanel' `,并可以通过`items`属性来添加初始的面板。例如: ```...

    Jquery-Extjs4.0框架

    总结来说,Jquery-Extjs4.0框架的结合使用,可以充分利用jQuery的轻便和易用性,以及Ext JS的强大组件和数据管理能力,共同构建出高效、互动性强的前端应用。了解并熟练掌握这两个框架,对于提升前端开发效率和应用...

    ExtJS tabPanel实例

    在ExtJS中,`tabPanel` 是一个非常重要的组件,它允许你在一个容器内创建多个标签页,每个标签页可以承载不同的内容,提供了类似桌面应用的用户体验。在实际开发中,`tabPanel` 经常被用来组织和展示复杂的信息。 `...

    模仿extjs风格写的jquery combobox

    标题中的“模仿extjs风格写的jquery combobox”指的是一个基于jQuery的下拉选择框组件,它的设计灵感来源于ExtJS库的ComboBox控件。ExtJS是一款功能丰富的JavaScript框架,以其强大的组件化和数据绑定机制著名,而...

    extjs动态添加tabpanel标签页支持pannel嵌入

    extjs动态添加tabpanel标签页支持pannel嵌入 逻辑代码在 MyWindow.js里面直接调用 方法 就可以

    JavaScript框架jQuery和ExtJS的对比研究.pdf

    "JavaScript框架jQuery和ExtJS的对比研究" 本文将对JavaScript框架jQuery和ExtJS进行对比研究,旨在帮助Web开发者选择合适的JavaScript框架。 JavaScript框架的重要性 随着Web 2.0时代的到来,Web应用程序越来越...

    jquery/extjs智能提示所需文件spket.7z

    在IT行业中,jQuery和ExtJS是两种非常流行的JavaScript库,用于构建交互式和动态的Web应用程序。它们都提供了丰富的功能,如DOM操作、事件处理、AJAX交互以及UI组件等,极大地简化了前端开发工作。这里提到的"jquery...

    浅谈JavaScript库——jQuery,ExtJs的对比研究.pdf

    jQuery是目前最流行的JavaScript库之一,由John Resig创建于2006年。jQuery的特点是轻量级、快速、灵活、跨浏览器兼容性强。jQuery提供了大量的插件和扩展,可以满足大多数Web开发需求。jQuery的优点是易于使用、...

    jQuery和ExtJs代码提示spket插件的下载和使用说明

    **jQuery和ExtJS代码提示Spket插件的下载与使用指南** 在开发JavaScript应用程序时,尤其是在使用特定框架如jQuery和ExtJS时,拥有一个能够提供代码提示和自动完成功能的工具是极其重要的。Spket IDE是一款针对...

    浅谈JavaScript 库———jQuery, ExtJs 的对比研究

    ### 浅谈JavaScript库——jQuery与ExtJs的对比研究 #### 一、引言 随着Web 2.0和RIA(Rich Internet Applications)技术的普及,JavaScript作为一种前端开发的重要工具,逐渐占据了重要的地位。它不再仅仅是用于...

    jQuery EasyUI仿Extjs界面

    尽管两者在定位上有所不同,jQuery EasyUI 通过其简洁的API和较低的学习曲线,为开发者提供了一种仿制ExtJS界面效果的方式。 在"jQuery EasyUI 仿 Extjs 界面布局"中,主要涉及以下知识点: 1. **布局管理**:...

    SSH2框架+jQuery+ExtJs+MySql数据库的购物网站

    该项目使用SSH2框架+jQuery+ExtJs+MySql数据库+MyEclipse开发环境。1、设计构思 将订单模块分成管理员和顾客两个管理部分: 管理员:可以查看所有的订单,对已付款的订单进行发货,查看订单详情,按不同方式查询订单...

    Extjs4.2 根据不同的数值设置tabpanel行的背景颜色

    ### Extjs4.2 根据不同的数值设置 TabPanel 行的背景颜色 #### 一、引言 在Web应用程序开发中,为了提高用户体验并使数据呈现更加直观易懂,开发者常常需要根据数据的不同状态来调整UI元素的样式。例如,在使用...

    解决EXTJS4.2的tabpanel右键关闭的BUG

    EXTJS4.2官网上的tabpanel的右键关闭当前页,关闭其它,关闭全部有一点小BUG。 修改TabCloseMenu.js文件的一下函数。 压缩文件里面就是修改过后的TabCloseMenu.js文件,只要替换当前4.2的那个文件就可以使用了!

    JAVASCRIPT DIV 弹层(模仿EXTJS)

    为了模仿EXTJS的弹层效果,我们还需要实现层上弹层的功能。这可以通过设置Div的`z-index`属性来实现,数值越大,层的位置越靠前: ```css #popup { position: absolute; /* 或者 fixed,根据需求选择 */ z-index:...

    EsayUI、Jquery、ExtJS等JS库中所用图标及界面图标选择功能

    EsayUI、jQuery和ExtJS都是广泛使用的JavaScript库,它们提供了丰富的功能来构建交互式的Web应用程序。其中,图标作为用户界面的重要元素,对于提升用户体验和美观度起着关键作用。本文将探讨如何在这些JS库中实现...

Global site tag (gtag.js) - Google Analytics