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 相关文章推荐
解决IE下select标签innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari)
May 13 Javascript
document.getElementById介绍
Sep 13 Javascript
js判断变量初始化的三种形式及推荐用的形式
Jul 22 Javascript
JavaScript在浏览器标题栏上显示当前日期和时间的方法
Mar 19 Javascript
jquery中map函数遍历数组用法实例
May 18 Javascript
RequireJs的使用详解
Feb 19 Javascript
BootStrap Table 后台数据绑定、特殊列处理、排序功能
May 27 Javascript
解读vue生成的文件目录结构及说明
Nov 27 Javascript
vue-router 源码之实现一个简单的 vue-router
Jul 02 Javascript
vue实现新闻展示页的步骤详解
Apr 11 Javascript
js实现数字滚动特效
Dec 16 Javascript
js的Object.assign用法示例分析
Mar 05 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
PHP PDOStatement:bindParam插入数据错误问题分析
2013/11/13 PHP
PHPer 需要了解的 5 个 Composer 小技巧
2014/08/18 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
2017/07/03 PHP
PHP设计模式之抽象工厂模式实例分析
2019/03/25 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
jQuery使用数组编写图片无缝向左滚动
2012/12/11 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
2014/01/26 Javascript
jquery ajax应用中iframe自适应高度问题解决方法
2014/04/12 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
每天一篇javascript学习小结(基础知识)
2015/11/10 Javascript
Angular外部使用js调用Angular控制器中的函数方法或变量用法示例
2016/08/05 Javascript
vuejs动态组件给子组件传递数据的方法详解
2016/09/09 Javascript
jQuery动画_动力节点节点Java学院整理
2017/07/04 jQuery
详解react-native-fs插件的使用以及遇到的坑
2017/09/12 Javascript
浅谈高大上的微信小程序中渲染html内容—技术分享
2018/10/25 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
Vue表单控件数据绑定方法详解
2020/02/05 Javascript
手把手带你搭建一个node cli的方法示例
2020/08/07 Javascript
Vue项目中使用mock.js的完整步骤
2021/01/12 Vue.js
python字符串,数值计算
2016/10/05 Python
Python中的 is 和 == 以及字符串驻留机制详解
2019/06/28 Python
python元组的概念知识点
2019/11/19 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
canvas基础之图形验证码的示例
2018/01/02 HTML / CSS
前端canvas水印快速制作(附完整代码)
2019/09/19 HTML / CSS
印尼在线精品店:Berrybenka.com
2016/10/22 全球购物
联想韩国官网:Lenovo Korea
2018/05/10 全球购物
护士岗位职责
2014/02/16 职场文书
怎么写好自荐书
2014/03/02 职场文书
我的长生果教学反思
2014/04/28 职场文书
酒店总经理岗位职责范本
2014/08/08 职场文书
党性锻炼的心得体会
2014/09/03 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
2022/07/15 Servers