OUTLOOK菜单类
<HTML>
<HEAD>
<TITLE>outlook菜单</TITLE>
<META http-equiv=content-type content=text/html;charset=gb2312>
<style>
.outlook-title
{
border:1px outset;
background-color:buttonface;
color:black;
text-align:center;
cursor:hand;
font-size:9pt;
}
.outlook-item
{
padding:2px;
font-size:9pt;
}

a.outlook-item:hover
{
color:blue;
}
</style>
</HEAD>
<BODY style="MARGIN: 0px" text=black vLink=white aLink=white link=white scroll=no>
<table height="100%" width="100%" border=0 cellpadding=0 cellspacing=0>
<tr><td width="140">
<TABLE style="WIDTH: 140px; HEIGHT: 100%" cellSpacing=0 cellPadding=0 bgColor=#aca899 border=1 hspace="0" vspace="0">
<TR>
<TD id=outLookBarShow style="HEIGHT: 100%" align=middle name="outLookBarShow">
<div id="o1" style="height:100%;"></div>
</td>
</tr>
</table>
</td><td><iframe id="frm" name="frm" width="100%" height="100%" frameborder=0></iframe></td></tr>
</table>

<SCRIPT LANGUAGE="JavaScript">
<!--
/**//*
** ==================================================================================================
** 类名:CLASS_OUTLOOKBAR
** 功能:OUTLOOK菜单
** 示例:
---------------------------------------------------------------------------------------------------
var o = new CLASS_OUTLOOKBAR();
o.addTitle("工作安排");
o.addTitle("通告信息");
o.addTitle("管理制度");
o.addTitle("系统管理");

o.addItem(0,"今日安排","frm","http://www.google.com");
o.addItem(0,"工作任务","frm","http://baidu.com");

o.addItem(1,"报社通知","frm","http://www.itpub.net/forum6.html",null);

o.setupById("o1");

//定义需要安装的DIV
<div id="o1" style="height:100%;"></div>

---------------------------------------------------------------------------------------------------
** 作者:ttyp
** 邮件:ttyp@21cn.com
** 日期:2005-12-1
** 版本:0.2
** ==================================================================================================
*/
function CLASS_OUTLOOKBAR(id,name)
{
var THIS1 = this;

this.id = getUnique(id);
this.name = getUnique(name);
this.width = "140";
this.height = "100%";
this.titles = new Array();

function getUnique(p){
if(p!=null){
return p;
} else {
return "outlook_" + new Date().getTime() + "_";
}
}

this.addTitle = function(name){

function title(name){
var THIS2 = this;
this.name = name;
this.items = new Array();
this.addItem = function(name,target,url,image,align){

function item(name,target,url,image,align){
this.name = name;
this.image = image;
this.target = target;
this.url = url;
this.align = align;
}

var _item = new item(name,target,url,image,align);
THIS2.items[THIS2.items.length] = _item;
return _item;
}
}

var _title = new title(name);
this.titles[this.titles.length] = _title;
return _title;
}

this.step = 4;
this.speed = 10;
this.selectedIndex = 0;
this.timer = 0;
this.rate = 100;
this.run = false;
this.wait = new Array();

this.select = function(index){
if(this.selectedIndex!=index){
if(this.run==false){
this.rate = 100;
this.run = true;
this.timer = window.setInterval(function(){
THIS1.rate-= THIS1.step;
var oldI = document.getElementById(THIS1.id + THIS1.selectedIndex).nextSibling;
var newI = document.getElementById(THIS1.id + index).nextSibling;

var ooI = oldI.childNodes[0].childNodes[0];
var nnI = newI.childNodes[0].childNodes[0];

oldI.style.display = "";
newI.style.display = "";

if(THIS1.rate<0){
window.clearInterval(THIS1.timer);
THIS1.timer = 0;
ooI.style.overflow="auto";
nnI.style.overflow = "auto";
oldI.style.display = "none";
THIS1.run = false;
THIS1.selectedIndex = index;
if(THIS1.wait.length>0){
THIS1.select(THIS1.wait[0]);
THIS1.wait = THIS1.wait.slice(1,-1);
}
} else {
ooI.style.overflow = "hidden";
nnI.style.overflow = "hidden";
oldI.style.height = THIS1.rate +"%";
newI.style.height = (100 - THIS1.rate) + "%";
}

},this.speed);
}else{
this.wait[this.wait.length] = index;
}
}
}

this.setup = function(contain){
if(contain!=null){
var table = document.createElement("table");
table.style.width = "100%";
table.style.height = "100%";
table.cellPadding = "0px";
table.cellSpacing = "0px";
table.style.border = "0px solid red";
table.bgColor = "#aca899";

function getItem(width,height,display,title){
var tris = document.createElement("tr");
var tdis = document.createElement("td");
tdis.style.width = width;
tris.style.height = height;
tris.style.display = display;
tdis.className = "outlook-item";
tdis.style.verticalAlign = "top";

if(title!=null&&typeof(title.items)!="undefined"){
var vv = document.createElement("div");
vv.style.overflow = "auto";
vv.style.height = "100%";
vv.style.width = "100%";

for(var i=0;i<title.items.length;i++){
var div = document.createElement("div");
div.style.textAlign = "center";
div.style.height = "24px";
div.style.paddingTop = "4px";

if(title.items[i].image!=null){
var img = document.createElement("img");
img.src = title.items[i].image;
div.appendChild(img);
if(typeof(title.items[i].align)!="undefined"&&title.items[i].align==1){
var lbl = document.createElement("label");
lbl.innerHTML = "<br>";
div.appendChild(lbl);
}
}

var a = document.createElement("a");
a.target = title.items[i].target;
a.innerHTML = title.items[i].name;
a.href = title.items[i].url;
div.appendChild(a);
vv.appendChild(div);
}

tdis.appendChild(vv);
}

tris.appendChild(tdis);
return tris;
}
for(var i=0;i<this.titles.length;i++){
var tr = document.createElement("tr");
var td = document.createElement("td");

tr.style.height = "25px";
td.style.width = "100%";
td.className = "outlook-title";

td.innerHTML = this.titles[i].name;
tr.id = this.id + i;
tr.appendChild(td);
table.appendChild(tr);
if (i==this.selectedIndex){
var tris = getItem("100%","100%","",this.titles[i]);
table.appendChild(tris);
} else {
var tri = getItem("100%","0%","none",this.titles[i]);
table.appendChild(tri);
}
}

if(typeof(contain.outerHTML)=="undefined"){
contain.appendChild(table);
} else {
contain.innerHTML = table.outerHTML;
}
//bind event
for(var i=0;i<this.titles.length;i++){
var title = document.getElementById(this.id + i);
if(title){
function mapping(index){
try {
title.onclick = function(){THIS1.select(index);}
title.oncontextmenu = function(){ return false;}
title.nextSibling.oncontextmenu = function(){return false;}
} catch (e){
}
}
mapping(i);
}
}
}
}

this.addItem = function(index,name,target,url,image,align){
if(index>=0&&index<this.titles.length){
return this.titles[index].addItem(name,target,url,image,align);
}
}

this.setupById = function(id){
var d = document.getElementById(id);
if(d){
this.setup(d);
}
}
}

var o = new CLASS_OUTLOOKBAR();
o.addTitle("工作安排");
o.addTitle("通告信息");
o.addTitle("管理制度");
o.addTitle("系统管理");

o.addItem(0,"今日安排","frm","http://www.google.com");
o.addItem(0,"工作任务","frm","http://baidu.com");

o.addItem(1,"报社通知","frm","http://www.itpub.net/forum6.html",null);

o.setupById("o1");

//-->
</SCRIPT>

</BODY>
</HTML>


















































































































































































































































































































【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构