简单的js模拟tab选项卡

本想做成一个扩展性好的,结果做来做去总是不理想 , 慢慢来吧 , 先把做好的保存一下 ,
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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值