JS实现仿Windows经典风格的选项卡Tab切换代码


Posted in Javascript onOctober 20, 2015

本文实例讲述了JS实现仿Windows经典风格的选项卡Tab切换代码。分享给大家供大家参考,具体如下:

这款仿Windows风格的选项卡,带有灰色的立体感,示例内容是用JS控制输出,只是为了演示功能,你在用的时候完全可以去掉的。

运行效果截图如下:

JS实现仿Windows经典风格的选项卡Tab切换代码

在线演示地址如下:

具体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>选项卡</title>
<style type="text/css">
body{
 background-color:#CCC;
}
.tab{
 margin:0;
 padding:0;
 position:absolute;
}
.tab li{
 float:left;
 list-style:none;
}
.tab li span{
 float:left;
 display:block;
 height:20px;
 line-height:20px;
 position:relative;
 border-style:solid;
 border-width:1px 1px 0 1px;
 border-color:#EEE #999 #777 #DDD;
 background-color:#CCC;
 margin:1px 2px 0 0;
 padding:0 5px 0 5px;
 font-size:12px;
 cursor:pointer;
 z-index:1;
}
.tab li div{
 display:none;
 position:absolute;
 top:22px;
 left:0px;
 background-color:#CCC;
 border:1px solid;
 border-color:#EEE #999 #777 #DDD;
 text-align:center;
 overflow:auto;
}
.tab li.selected span{
 margin-top:0;
 height:22px;
}
.tab li.selected div{
 display:block;
}
</style>
<script type="text/javascript">
function CreateTab(tab_width,tab_height,parent_obj){
 var newtab=document.createElement("UL");
 newtab.className="tab";
 parent_obj.appendChild(newtab);
 Tab.call(newtab);
 newtab.style.width=tab_width+"px";
 newtab.style.height=tab_height+"px";
 return newtab;
}
function Tab(){
 var this_tab=this;
 this.selected_page;
 this.page_names=new Array();
 this.page_contents=new Array();
 this.Select=function(){
  this_tab.selected_page.className="";
  this.className="selected";
  this_tab.selected_page=this;
 }
 this.NewPage=function(page_name){
  var newpage=document.createElement("LI");
  newpage.onclick=this.Select;
  newpage.innerHTML="<span>"+page_name+"</span><div></div>";
  this.appendChild(newpage);
  newpage.lastChild.style.width=parseInt(this.style.width)-2+"px";
  newpage.lastChild.style.height=parseInt(this.style.height)-24+"px";
  this.page_names.push(newpage.firstChild);
  this.page_contents.push(newpage.lastChild);
  return newpage;
 }
 this.SetChecked=function(page_index){
  if(page_index>-1&&this.childNodes.length>page_index){
   this.selected_page=this.childNodes[page_index];
   this.selected_page.className="selected";
  }
 }
}
</script>
</head>
<body>
<script type="text/javascript">
var newtab=CreateTab(400,300,document.body);
 newtab.NewPage("第一页");
 newtab.NewPage("第二页");
 newtab.NewPage("第三页");
 newtab.NewPage("第四页");
 newtab.NewPage("第五页");
 newtab.SetChecked(0);
 newtab.style.top="100px";
 newtab.style.left="200px";
 for(var i=0;i<newtab.childNodes.length;i++){
  newtab.page_contents[i].innerHTML=function(number){
   var content_str="";
   for(var n=0;n<1;n++){
    content_str+="<br />---------------这是第"+number+"页---------------";
   }
   return content_str;
  }(i+1);
 }
</script>
</body>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jquery学习笔记二 实现可编辑的表格
Apr 09 Javascript
jQuery 1.5最新版本的改进细节分析
Jan 19 Javascript
Javascript闭包(Closure)详解
May 05 Javascript
Jquery动态添加输入框的方法
May 29 Javascript
详解javascript函数的参数
Nov 10 Javascript
10个JavaScript中易犯小错误
Feb 14 Javascript
webpack入门必知必会
Jan 16 Javascript
vue路由组件按需加载的几种方法小结
Jul 12 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
Aug 07 Javascript
vue.config.js常用配置详解
Nov 14 Javascript
js实现轮播图特效
May 28 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
Jun 26 Javascript
JavaScript实现的简单烟花特效代码
Oct 20 #Javascript
require.js的用法详解
Oct 20 #Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
Oct 20 #Javascript
JS实现带有3D立体感的银灰色竖排折叠菜单代码
Oct 20 #Javascript
jquery如何获取元素的滚动条高度等实现代码
Oct 19 #Javascript
js验证身份证号有效性并提示对应信息
Oct 19 #Javascript
详解JavaScript数组的操作大全
Oct 19 #Javascript
You might like
全国FM电台频率大全 - 27 陕西省
2020/03/11 无线电
提升PHP执行速度全攻略(下)
2006/10/09 PHP
PHP APC的安装与使用详解
2013/06/13 PHP
PHP实现设计模式中的抽象工厂模式详解
2014/10/11 PHP
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
2010/04/27 Javascript
JQuery Dialog的内存泄露问题解决方法
2010/06/18 Javascript
提升你网站水平的jQuery插件集合推荐
2011/04/19 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
Node.js中的缓冲与流模块详细介绍
2015/02/11 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
vue loadmore组件上拉加载更多功能示例代码
2017/07/19 Javascript
深度解读vue-resize的具体用法
2020/07/08 Javascript
python读取csv文件示例(python操作csv)
2014/03/11 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
Python 获取中文字拼音首个字母的方法
2018/11/28 Python
Python数据可视化之画图
2019/01/15 Python
计算机二级python学习教程(2) python语言基本语法元素
2019/05/16 Python
python简单实现矩阵的乘,加,转置和逆运算示例
2019/07/10 Python
Django Form设置文本框为readonly操作
2020/07/03 Python
在python3.9下如何安装scrapy的方法
2021/02/03 Python
基于CSS3制作立体效果导航菜单
2016/01/12 HTML / CSS
一套带答案的C++笔试题
2014/01/10 面试题
会计自我鉴定范文
2013/10/06 职场文书
进修护士自我鉴定
2013/10/14 职场文书
双十佳事迹材料
2014/01/29 职场文书
法律进学校实施方案
2014/03/15 职场文书
股权收购意向书
2014/04/01 职场文书
计算机系统管理员求职信
2014/06/20 职场文书
2014年初一班主任工作总结
2014/11/08 职场文书
表扬通报怎么写
2015/01/16 职场文书
大专护理专业自荐信
2015/03/25 职场文书
项目备案申请报告
2015/05/15 职场文书
JavaWeb Servlet实现网页登录功能
2021/07/04 Java/Android
Nginx虚拟主机的配置步骤过程全解
2022/03/31 Servers
分享Python异步爬取知乎热榜
2022/04/12 Python