六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 67|回复: 0

简单的js模拟tab选项卡

[复制链接]

升级  10.67%

18

主题

18

主题

18

主题

秀才

Rank: 2

积分
66
 楼主| 发表于 2013-1-29 07:32:17 | 显示全部楼层 |阅读模式
本想做成一个扩展性好的,结果做来做去总是不理想 , 慢慢来吧 , 先把做好的保存一下 ,
css很粗糙....
<html><head><title></title><style type="text/css"><!--#TabPage{  position:absolute;  left: 400px;  top: 200px;  height: 400px;  width: 300px;  border-color: blue;  border: solid 1px;  background-color: lightblue;}#Tab{  position: absolute;  left:0;  top:0;  width: 100%;  height: 30px;  border-color: red;  border: solid 1px;  font-size: 12px;  color: blue;}.subTab{float: left;width: 60px;height:100%; }#Page{  position: absolute;  left: 0;  top: 31px;  width: 100%;  border-color: black;  border:solid 1px;  background-color: white;}--></style><script type="text/javascript"><!--  var str = "";  var zIndex = 0;  var tabpage; /* function _Tab(tabName){    this.Nodes = [];    this.tabName = tabName;  }  function _Page(pageName){    this.pageName = pageName;    this.Nodes = [];  }*/  function _TabPage(){    //tabpage有两个子数组, 分别标识有几个tab和page,以及其对应关系.根据索引对应.    this.tabs = [];    this.pages = [];  }  function _Tab (id ,title ,url ){     this.id = id;    this.title = title;     this.url = url;   }  function _Page (id , title , tabId){    this.id = id;    this.title = title;    this.tabId = tabId;  }    _TabPage.prototype.add = function(_tab , _page){    if(!_tab || !_page) return;//如果有一个为空 , 就不用做操作了.    //initpage.    var tab = document.createElement("div");    tab.id = _tab.id;      //添加鼠标经过事件 ,     //tab.onmouseover = function (tabId){this.showCurrentPage();};    tab.attachEvent('onmouseover',function(){var srcE = event.srcElement;var tabId = srcE.id;     for(var i = 0 ; i < $('Page').childNodes.length ;i++){   $('Page').childNodes[i].style.display = 'none';   }  for(var i = 0 ; i <$('Page').childNodes.length;i++){   if(tabId ==  $('Page').childNodes[i].tabId){  $('Page').childNodes[i].style.display = 'block';  return;  }  }  }  );      if(_tab.className) tab.className = _tab.className;    else tab.className = 'subTab';    //tab.innerHTML = _tab.url ? '<a href="' + _tab.url + '">' + _tab.title + '</a>' : _tab.title;    tab.innerHTML = _tab.title;    this.tabs[this.tabs.length] = _tab;     document.getElementById('Tab').appendChild(tab);        var page = document.createElement("div");    page.id = _page.id;    page.tabId = _page.tabId;    if(_page.className) page.className = _page.className;     page.innerHTML = _page.title;     page.style.display = 'none';    this.pages[this.pages.length] = page;      document.getElementById('Page').appendChild(page);  this.pages[0].style.display = 'block';  }   function createTabPage(id ,title , url){       var tab = new _Tab(id ,title,url);    //page中的内容应该是一个jsp页面.     var page = new _Page('p1','内容' + (zIndex++) , tab.id);      tabpage.add(tab , page);  }  function page_init(){    tabpage = new _TabPage();    $('Page').style.height = $('TabPage').offsetHeight - $('Tab').offsetHeight;     createTabPage('0','个人信息','./empInfo.do?method=');    createTabPage('1','单位信息','./empInfo.do?method=');  }  function $(id){    return document.getElementById(id);  }  //显示当前tab对应的page  _TabPage.prototype.showCurrentPage=function (tabId){     alert(tabId);  for(var i = 0 ; i < $('Page').childNodes.length ;i++){   $('Page').childNodes[i].style.display = 'none';  alert($('Page').childNodes[i].tabId);  }      for(var i = 0 ; i <  $('Page').childNodes.length ;i++){  if(tabId ==  $('Page').childNodes[i].tabId){  $('Page').childNodes.length = 'block';  return;  }  }  }  window.onload = page_init;//--></script></head><body >  <div id="TabPage" class="TabPage">    <div id="Tab" class="Tab">    </div>    <div id="Page" class="Page">    </div>  </div></body></html>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表