一个js实现的所谓的滑动门


Posted in Javascript onMay 23, 2007

滑动门:我不理解为什么这样叫。
我就命名为:JMenuTab吧,因为写它是为了当我的菜单。

IE6,FireFox下测试通过。

<!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=utf-8" /> 
<title>无标题文档</title> 
<link href="JTabRes1/JMenuTab.css" rel="stylesheet" type="text/css" /> 
<style type="text/css"> 
<!-- 
body { 
    margin: 0px; 
} 
--> 
</style> 
</head> <body> 
<table width="100%" border="0" cellspacing="0" cellpadding="0"> 
  <tr> 
    <td width="200"> </td> 
    <td id="menuBar"></td> 
  </tr> 
</table> 
<div id="page1">大大小小多多少少<br /> 
人口手足</div> 
<div id="page2">ABCDEFG</div> 
<div id="page3"><img src="loading.gif" /></div> 
<div id="pageHelp"><table width="100%" border="0" cellspacing="0" cellpadding="0"> 
  <tr> 
    <td>JMenuTab 帮助:</td> 
    </tr> 
  <tr> 
    <td>Author:xling Blog:http://xling.blueidea.com  2007/05/23 </td> 
  </tr> 
  <tr> 
    <td>写这个程序只是为了解决燃眉之急(汉,虽然是急,我还是写了一天)!</td> 
    </tr> 
  <tr> 
    <td>程序中用到图片是修改了网上现有图片,所以,外表和某些网站上的一样,请不要见怪。因为除了图片,全是原创(不曾参考任何类似程序)!</td> 
    </tr> 
  <tr> 
    <td>IE6,Firefox下测试通过。</td> 
  </tr> 
  <tr> 
    <td>调用方法(注意顺序):</td> 
  </tr> 
  <tr> 
    <td>var menuTab = new JMenuTab(null,null,"menuBar");<br /> 
menuTab.create();<br /> 
menuTab.addTab("首页");<br /> 
menuTab.addTab("组织架构","page1");<br /> 
menuTab.addTab("员工信息","page2");<br /> 
menuTab.addTab("业务知识","page3"); 
<br /> 
menuTab.addTab("Help","pageHelp");<br /> 
menuTab.setActiveTab(2);</td> 
  </tr> 
</table> 
</div> 
</body> 
</html> 
<script language="javascript" type="text/javascript"> 
function JMenuTab(pWidth,pHeight,pBody){ 
    var self = this; 
    //________________________________________________ 
    var width = pWidth; 
    var height = pHeight; 
    var titleHeight = 24; 
    //________________________________________________ 
    var oOutline = null; 
    var oTitleOutline = null; 
    var oPageOutline = null; 
    var oTitleArea = null; 
    var oPageArea = null; 
    var tabArray = new Array(); 
    var activedTab = null; 
    //________________________________________________ 
    var $ = function(pObjId){ 
        return document.getElementById(pObjId);     
    } 
    //________________________________________________ 
    var body = $(pBody) || document.body; 
    //________________________________________________ 
    var htmlObject = function(pTagName){ 
        return document.createElement(pTagName); 
    } 
    //________________________________________________ 
    var isRate = function(pRateString){ 
        if(!isNaN(pRateString)) return false; 
        if(pRateString.substr(pRateString.length-1,1) != "%") 
            return false; 
        if(isNaN(pRateString.substring(0,pRateString.length - 1))) 
            return false; 
        return true; 
    }     
    //________________________________________________ 
    var createOutline = function(){ 
        oOutline = htmlObject("DIV"); 
        body.appendChild(oOutline); 
        oOutline.className = "oOutline"; 
    } 
    //________________________________________________ 
    var createTitleOutline = function(){ 
        oTitleOutline = htmlObject("DIV"); 
        oOutline.appendChild(oTitleOutline); 
        oTitleOutline.className = "oTitleOutline"; 
        var vTable = htmlObject("TABLE"); 
        oTitleOutline.appendChild(vTable); 
        vTable.width = "100%"; 
        vTable.border = 0; 
        vTable.cellSpacing = 0; 
        vTable.cellPadding = 0; 
        var vTBody = htmlObject("TBODY"); 
        vTable.appendChild(vTBody); 
        var vTr1 = htmlObject("TR"); 
        vTBody.appendChild(vTr1); 
        var vTdTopLeft = htmlObject("TD"); 
        vTr1.appendChild(vTdTopLeft); 
        vTdTopLeft.height = titleHeight; 
        vTdTopLeft.className = "oTopLeft"; 
        oTitleArea = htmlObject("TD");///////////////////////////////// 
        vTr1.appendChild(oTitleArea); 
        oTitleArea.className = "oTitleArea"; 
        var vTdTopRight = htmlObject("TD"); 
        vTr1.appendChild(vTdTopRight); 
        vTdTopRight.className = "oTopRight"; 
    } 
    this.setTitleHeight = function(pHeight){ 
        //设置标题区域的高度 
    } 
    //________________________________________________ 
    var tabBtn_click = function(){ 
        self.setActiveTab(this.index); 
    } 
    var tabBtn_mouseover = function(){ 
        if(this.className =="oTabBtnActive") 
            return; 
        this.className = "oTabBtnHover"; 
    } 
    var tabBtn_mouseout = function(){ 
        if(this.className =="oTabBtnActive") 
            return; 
        this.className = "oTabBtn"; 
    }     
    //________________________________________________ 
    var createTabBtn = function(pLabel,pTabPage){ 
        var vTabBtn = htmlObject("DIV"); 
        oTitleArea.appendChild(vTabBtn); 
        vTabBtn.className = "oTabBtn"; 
        vTabBtn.index = tabArray.length; 
        vTabBtn.tabPage = pTabPage; 
        vTabBtn.onclick = tabBtn_click; 
        vTabBtn.onmouseover = tabBtn_mouseover; 
        vTabBtn.onmouseout = tabBtn_mouseout; 
        tabArray.push(vTabBtn); 
        var vTabBtnL = htmlObject("DIV"); 
        vTabBtn.appendChild(vTabBtnL); 
        vTabBtnL.className = "oTabBtnLeft"; 
        vTabBtnC = htmlObject("DIV"); 
        vTabBtn.appendChild(vTabBtnC); 
        vTabBtnC.className = "oTabBtnCenter"; 
        vTabBtnC.innerHTML = pLabel; 
        vTabBtnR = htmlObject("DIV"); 
        vTabBtn.appendChild(vTabBtnR); 
        vTabBtnR.className = "oTabBtnRight"; 
    } 
     
    var createPageOutline = function(){ 
        oPageOutline = htmlObject("DIV"); 
        oOutline.appendChild(oPageOutline); 
        oPageOutline.className = "oPageOutline"; 
        var vTable = htmlObject("TABLE"); 
        oPageOutline.appendChild(vTable); 
        vTable.width = "100%"; 
        vTable.border = 0; 
        vTable.cellSpacing = 0; 
        vTable.cellPadding = 0; 
        vTable.style.borderCollapse = "collapse"; 
        vTable.style.tableLayout="fixed"; 
        var vTBody = htmlObject("TBODY"); 
        vTable.appendChild(vTBody); 
        var vTr1 = htmlObject("TR"); 
        vTBody.appendChild(vTr1); 
        var vTdBottomLeft = htmlObject("TD"); 
        vTr1.appendChild(vTdBottomLeft); 
        vTdBottomLeft.className = "oBottomLeft"; 
        vTdBottomLeft.rowSpan = 2; 
        oPageArea = htmlObject("TD");/////////////////////////////////////// 
        vTr1.appendChild(oPageArea); 
        oPageArea.className = "oPageArea"; 
        if(oPageArea.filters) 
            oPageArea.style.cssText = "FILTER: progid:DXImageTransform.Microsoft.Wipe(GradientSize=1.0,wipeStyle=0, motion='forward');"; 
        oPageArea.height = 10; 
        var vTdBottomRight = htmlObject("TD"); 
        vTr1.appendChild(vTdBottomRight); 
        vTdBottomRight.className = "oBottomRight"; 
        vTdBottomRight.rowSpan = 2; 
        var vTr2 = htmlObject("TR"); 
        vTBody.appendChild(vTr2); 
        var vTdBottomCenter = htmlObject("TD"); 
        vTr2.appendChild(vTdBottomCenter); 
        vTdBottomCenter.className = "oBottomCenter"; 
    } 
    //________________________________________________ 
    this.addTab = function (pLabel,pPageBodyId){ 
        createTabBtn(pLabel,pPageBodyId); 
        if($(pPageBodyId)){ 
            oPageArea.appendChild($(pPageBodyId)); 
            $(pPageBodyId).style.display = "none"; 
        } 
    } 
    //________________________________________________ 
    this.setActiveTab = function(pIndex){ 
        if(oPageArea.filters) 
            oPageArea.filters[0].apply(); 
        if(activedTab != null){ 
            activedTab.className = "oTabBtn"; 
            if($(activedTab.tabPage)) 
                $(activedTab.tabPage).style.display = "none"; 
        } 
        activedTab = tabArray[pIndex]; 
        activedTab.className = "oTabBtnActive"; 
        if($(activedTab.tabPage)) 
            $(activedTab.tabPage).style.display = ""; 
        if(oPageArea.filters) 
            oPageArea.filters[0].play(duration=1); 
    }; 
    //________________________________________________ 
     
    this.create = function(){ 
        createOutline(); 
        createTitleOutline(); 
        createPageOutline(); 
    } 
} 
var menuTab = new JMenuTab(null,null,"menuBar"); 
    menuTab.create(); 
    menuTab.addTab("首页"); 
    menuTab.addTab("组织架构","page1"); 
    menuTab.addTab("员工信息","page2"); 
    menuTab.addTab("业务知识","page3"); 
    menuTab.addTab("ISO系统"); 
    menuTab.addTab("办公环境"); 
    menuTab.addTab("公司新闻"); 
    menuTab.addTab("公共政策"); 
    menuTab.addTab("链接总部"); 
    menuTab.addTab("Help","pageHelp"); 
    menuTab.setActiveTab(2); 
</script>

请下载源码察看效果。

Javascript 相关文章推荐
地址栏上的一段语句,改变页面的风格。(教程)
Apr 02 Javascript
JS 创建对象(常见的几种方法)
Nov 03 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
Jul 24 Javascript
javascript编码的几个方法详细介绍
Jan 06 Javascript
js如何实现设计模式中的模板方法
Jul 23 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
Aug 15 Javascript
jQuery中deferred对象使用方法详解
Jul 14 Javascript
js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换
Dec 06 Javascript
Vue.js中兄弟组件之间互相传值实例
Jun 01 Javascript
JavaScript编写棋盘覆盖代码详解
Aug 28 Javascript
js 函数性能比较方法
Aug 24 Javascript
原生js+canvas实现验证码
Nov 29 Javascript
JavaScript网页制作特殊效果用随机数
May 22 #Javascript
JS加ASP二级域名转向的代码
May 17 #Javascript
用javascript实现的支持lrc歌词的播放器
May 17 #Javascript
JavaScript中的new的使用方法与注意事项
May 16 #Javascript
几款极品的javascript压缩混淆工具
May 16 #Javascript
(JS实现)MapBar中坐标的加密和解密的脚本
May 16 #Javascript
网站被黑的假象--ARP欺骗之页面中加入一段js
May 16 #Javascript
You might like
flash用php连接数据库的代码
2011/04/21 PHP
curl实现站外采集的方法和技巧
2014/01/31 PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
2014/04/24 PHP
如何用PHP来实现一个动态Web服务器
2015/07/29 PHP
非常全面的php日期时间运算汇总
2015/11/04 PHP
基于php流程控制语句和循环控制语句(讲解)
2017/10/23 PHP
ThinkPHP 5.x远程命令执行漏洞复现
2019/09/23 PHP
JS 控件事件小结
2012/10/31 Javascript
JS文本框不能输入空格验证方法
2013/03/19 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
2014/01/10 Javascript
javascript将异步校验表单改写为同步表单
2015/01/27 Javascript
javascript实现图片跟随鼠标移动效果的方法
2015/05/13 Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
2016/05/28 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
功能强大的Bootstrap效果展示(二)
2016/08/03 Javascript
js实现炫酷的左右轮播图
2017/01/18 Javascript
Vue组件全局注册实现警告框的实例详解
2018/06/11 Javascript
微信小程序picker组件两列关联使用方式
2020/10/27 Javascript
Python处理RSS、ATOM模块FEEDPARSER介绍
2015/02/18 Python
详细解析Python中的变量的数据类型
2015/05/13 Python
Python爬虫爬验证码实现功能详解
2016/04/14 Python
Python安装官方whl包和tar.gz包的方法(推荐)
2017/06/04 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
2018/02/10 Python
10分钟教你用Python实现微信自动回复功能
2018/11/28 Python
Python 列表去重去除空字符的例子
2019/07/20 Python
python+selenium实现12306模拟登录的步骤
2021/01/21 Python
css3弹性盒子flex实现三栏布局的实现
2020/11/12 HTML / CSS
ECCO爱步官方旗舰店:丹麦鞋履品牌
2018/01/02 全球购物
Homestay中文官网:全球寄宿家庭
2018/10/18 全球购物
农村葬礼主持词
2014/03/31 职场文书
优秀管理者事迹材料
2014/05/22 职场文书
护理医院见习报告
2014/11/03 职场文书
就业推荐表自我评价范文
2015/03/02 职场文书
浅谈Python数学建模之数据导入
2021/06/23 Python
新手初学Java网络编程
2021/07/07 Java/Android