javascript 定时自动切换的选项卡Tab

这里要注意,用于产生changeTabInterval的随机数,防止页面上TabPane过多,如果设置的changeTabInterval都一样的话会产生整齐划一的切换的效果,不美观.


自动切换Tab选项卡

function randint(m,n)//产生m-n之间的随机整数
{
return Math.random()*(n-m)+m;
}
function IfNull(a,dv)
{
return typeof(a) =="undefined"?dv:a;
}

var TabPaneConfig = {
idPrefix: "tab-panel-object-",
idCounter: 0,
getId: function(){ return this.idPrefix+this.idCounter++;},
tabHeadId: "tabHead",
tabHeadClass: "tab-head tab-border",
tabBodyId: "tabBody",
tabBodyClass: "tab-border"
}

function TabPane(id,changeTabInterval,isAutoChangeTab){
this.id = id;
this.height = "100%";
this.width = "100%";

this.tabPages = 0;
this.head = null;
this.body = null;

this.changeTabInterval=IfNull(changeTabInterval,10);
this.isAutoChangeTab=IfNull(isAutoChangeTab,true);
this.changeTabTimerId = null;
}

TabPane.prototype.init = function(){
var r = document.getElementById(this.id);
if(!r.style.overflow) r.style.overflow = "auto";
r.className = "tab";

//create head
var div = document.createElement("div");
div.id = TabPaneConfig.tabHeadId;
div.className = TabPaneConfig.tabHeadClass;

r.appendChild(div);
this.head = div;

var ul = document.createElement("ul");
div.appendChild(ul);

//create body
div = document.createElement("div");
div.id = TabPaneConfig.tabBodyId;
div.className = TabPaneConfig.tabBodyClass;

r.appendChild(div);
this.body = div;

if(this.isAutoChangeTab)
{
var tabPane = this;
this.changeTabTimerId = setInterval(function(){onChangeTabTimer(tabPane);},this.changeTabInterval*1000);
}
}

TabPane.prototype.stopChangeTabTimer = function ()
{
if(this.isAutoChangeTab)
{
clearInterval(this.changeTabTimerId);
}
}

TabPane.prototype.addTabPage = function(obj)
{
if(!document.getElementById(obj.panel)) return;
if(!this.tabPages) this.init();

this.head.firstChild.appendChild(this.createTabTitle(obj));
this.body.appendChild(document.getElementById(obj.panel));
this.tabPages++;
}

TabPane.prototype.createTabTitle = function(obj){
var li = document.createElement("li");
li.id = TabPaneConfig.getId();
li.data = obj.panel;
var tabPane = this;
li.onclick=function(){tabOnClick(tabPane,li)};
li.style.width = obj.width;

if(this.tabPages)
{
li.className="";
document.getElementById(obj.panel).style.display="none";
}
else
{
li.className="hover";
document.getElementById(obj.panel).style.display="block";
}

var textNode = document.createTextNode(obj.title);
li.appendChild(textNode);
return li;
}

//得到所有Tab页的Li元素
TabPane.prototype.getLiArr = function()
{
return this.head.firstChild.children;
}

TabPane.prototype.getAcitveLi = function()
{
var liArr = this.getLiArr();
for(var i=0; i

.tab {
font-family: Verdana, Helvetica, Arial;
font-size: 12px;
position: relative;
width: 100%;
}
.tab-border {border:1px solid;border-color: rgb(120,172,255);}
.tab-head {
background-color:rgb(234,242,255);;
border:0px;
height:23px;
line-height:20px;
position:relative;
}
.tab-head ul{
border:0px;
height:23px;
list-style:none;
margin:0px;
text-align:center;
padding:0;
position:absolute;

}
.tab-head li{
border: 1px solid;
border-color: rgb(120,172,255);
border-left: 0;
border-bottom: 0;
border-top: 0;
cursor:pointer;
color:#416AA3;
float:left;
display:block;
height:22px;!important;height:20px;
line-height:20px;
padding: 2px 6px 0px 6px;
margin-top: 2px;
margin-right: -1px;
text-overflow:ellipsis;
white-space:nowrap;
overflow:hidden;

}
.tab-head li.hover{
border: 1px solid rgb(120,172,255);
border-bottom: 0;
padding: 0px 6px 3px 6px;
margin: 0px 1px 0px 0px;
background: white;
font-size: 13px;
font-weight: bold;
color: rgb(0,66,174);
overflow:visible;
}

黑客零起点教程 CHM

可以加密及解密的VB屏幕键盘组件

什么样的项目经历会让面试官眼前一亮

超级j2me飞行游戏疯狂雷电源代码

可以加密及解密的VB屏幕键盘组件

编程学习中的一些错误认识

Delphi多文档几何图形绘制及编辑程序

学ACM算法题有用吗?

黑客零起点教程 CHM

超级j2me飞行游戏疯狂雷电源代码

B实现主窗体控制副窗口的显示与隐藏

Delphi多文档几何图形绘制及编辑程序

var tp = new TabPane("divForumBoard",randint(3,10));
tp.addTabPage({title:"公告" ,width:50 ,panel:"divForumCast"});
tp.addTabPage({title:"面板" ,width:50 ,panel:"divForumPanel"});

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

(0)

相关推荐

  • 跨浏览器通用、可重用的选项卡tab切换js代码

    由于近来学了点js,于是我装逼道...不太难吧...就切一下display属性?同学无视我..说要搞个通用的...什么还要跟ajax交互..???我愣是没有听懂...到底要搞什么...权当作练手,我自己胡弄了一个. 需求:同学口中的通用我不知道神马意思...那我就按自己的理解吧.. ①跨浏览器,IE6+,FF,Chrome,Safari,Opera ②同一个页面可以用同一个js设置不同的选项卡. 说太多没啥米用,来看代码吧. 一.html部分(其实这还没啥好看的,设置了三个,前两个是一样的,通过

  • Javascript 自适应高度的Tab选项卡

    JS部分具体的代码如下: 复制代码 代码如下: var getSiblingNode=function(className,elAr,el,not){ className=" "+className+" "; var Arr=[]; for(var i=0,l=elAr.length;i<l;i++){ if(elAr[i]!=el&&(elAr[i].nodeType===1)&&(" "+elAr[i].

  • js自定义Tab选项卡效果

    自定义Tab选项卡,具体内容如下 规范HTML格式 在设计选项卡之前,先规范一下HTML的格式. <div class="m-tab-container"> <ul > <li class="active"><a href="#pane1">面板1</a></li> <li><a href="#pane2" rel="exter

  • Vue.js组件tabs实现选项卡切换效果

    今天给大家分享一个小颖自己写的vue组件,因为小颖也才接触vue没多久,如果有什么不足的地方,希望大家提出来,小颖加以改正.以下就是具体如何实现tabs啦. 调用示例: <template> <div class="tabs-contents"> <!-- 调用tabs组件 --> <tabs :flag.sync='tabsShowFlag' :navtitle='navTitle' :navdata='navData'> <di

  • javascript 通用简单的table选项卡实现

    第一步:引用table.js 复制代码 代码如下: <script type="text/javascript" src="table.js"> </script> 第二步:定义选中的样式,比如"active",应用选项卡的块的ID,比如"sidebar",默认被选中的序号,比如第一个"0": 第三步:调用函数: 复制代码 代码如下: <script type="te

  • javascript+css 新闻显示tab 选项卡效果

    我们_新闻显示选项卡效果(javascript+css) 新闻排行 国内 国际 社会 网评 新疆阜康铁路桥梁坍塌多节运煤车厢侧翻坠河 最高法:承诺不判赖昌星死刑没有超越法律程序 物权法:满70年住宅建设用地使用权将自动续期 弟弟被妻下药毒死男子买女尸为其配阴婚(图) 揭开郑州神枪手神秘面纱 头号狙击手是近视眼 美军高官:不排除和中国发生直接军事对抗可能 浙江东阳传奇富姐吴英涉嫌非法吸收存款被批捕 西方炒作"中国航母威胁论"称05年已正式服役 女孩生活无法自理请人大代表递交安乐死议案 建

  • 纯php打造的tab选项卡效果代码(不用js)

    1.根据get判断,获取get生成css 复制代码 代码如下: <style type="text/css"> <?php if(!isset($_GET['city_id'])) { $city_id = 12; } else { $city_id = $_GET['city_id']; } echo '.a'.$city_id.' { color:red; } '; for($i=12;$i<=16;$i++) { if($i != $city_id) {

  • js tab 选项卡

    一般需要事先写好css样式等function tab(sId) { var tabs = document.getElementsByTagName("H2"); var boxs = document.getElementsByTagName("h3"); if ( boxs[sId].style.display=="block"){ boxs[sId].style.display="none"; tabs[sId].sty

  • javascript实现tabs选项卡切换效果(自写原生js)

    现在的页面上有许多各种各样的页面效果,常用的有弹出层效果,无缝滚动效果,选项卡切换效果.今天分享一款自己用原生javascript写的选项卡切换效果,由于本人水平有限,如有问题请指出. 效果图如下:  html代码: 复制代码 代码如下: <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>js-tabs</

  • js实现tab选项卡函数代码

    * { padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; padding-top: 0px; } BODY { padding-left: 20px; padding-top: 20px; } .wid240 { width: 242px; margin-bottom: 20px; } .wid180 { width: 182px; } .tab { border-b

随机推荐