html 仿浏览器选项卡,JavaScript浏览器选项卡效果

有图如下:

20100825214924769.jpg

代码如下:

/*

head html :

body html :

*/

var Tab = function(id,title,url,isClose){

this.id = id;

this.title = title;

this.url = url;

this.head = jQuery('' + this.title +'');

this.body = jQuery('').hide();

isClose && (this.close = jQuery('×'),this.closeBtn());

};

Tab.prototype = {

closeBtn : function(){

var self = this;

self.close.bind("mouseover",function(){

jQuery(this).addClass("tab-closeBtn-hover");

});

self.close.bind("mouseout",function(){

jQuery(this).removeClass("tab-closeBtn-hover");

});

self.head.append(self.close);

},

getFocus : function(){

this.head.addClass("tab-head-active");

this.body.show();

},

loseFocus : function(){

this.head.removeClass("tab-head-active");

this.body.hide();

},

destory : function(){

this.head.remove();

this.body.remove();

},

};

/*

head html :

...

body html :

...

*/

var TabView = function(container){

this.container = container;

this.head = jQuery('

this.body = jQuery('

this.tabs = [];

this.tabId = 0;

this.focusTab = null;

this.init();

};

TabView.prototype = {

init : function(){

this.container.append(this.head).append(this.body);

},

add : function(title,url,isClose){

var self = this;

var tab = new Tab(self.tabId,title,url,isClose);

self._tabEvents(tab);

(self.tabs.length==0) && (tab.getFocus(),self.focusTab=tab);

self.tabs.push(tab);

self.head.append(tab.head);

self.body.append(tab.body);

self.tabId++;

},

remove_ref : function(tab){

var self = this;

for(var i=0;i

if(tab.id===self.tabs[i].id){

tab.destory();

self.tabs.splice(i,1);

return i;

}

}

return -1;

},

destory : function(){

this.head.remove();

this.body.remove();

},

_tabEvents : function(tab){

var self = this;

tab.head.bind("click",function(){

if(self.focusTab.id != tab.id){

tab.getFocus();

self.focusTab.loseFocus();

self.focusTab = tab;

}

});

tab.close && tab.close.bind("click",function(){

tab.destory();

var i = self.remove_ref(tab);

if(tab.id==self.focusTab.id){//如果关闭的是当前的tab

if(self.tabs.length==0){//如果所有tab都已关闭

self.destory();

}else{

var nextIndex = self.tabs.length==i ? i-1 : i;

self.focusTab = self.tabs[nextIndex];

self.focusTab.getFocus();

}

}

});

},

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值