📄 outlook.js
字号:
// ---------------------------------------------------------------------------
// this script is copyright (c) 2001 by Michael Wallner!
// http://www.wallner-software.com
// mailto:dhtml@wallner-software.com
//
// you may use this script on web pages of your own
// you must not remove this copyright note!
//
// This script featured on Dynamic Drive (http://www.dynamicdrive.com)
// Visit http://www.dynamicdrive.com for full source to this script and more
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
// Outlook like navigation bar version 1.2
//
// supported browsers: IE4, IE5, NS4, NS6, MOZ, OP5
// needed script files: crossbrowser.js
//
// History:
// 1.0: initial version
// 1.1: no Reload in IE and NS6
// 1.2: no Reload in OP5 if width is not changed
// ---------------------------------------------------------------------------
//add one button to a panel
//img: image name
//label: button caption
//action: javascript on MouseUp event
function b_addButton(img, label, action) {
this.img[this.img.length]=img;//????????
this.lbl[this.lbl.length]=label;//????????
this.act[this.act.length]=action;//??????????????
this.sta[this.sta.length]=0;//
return this
}
//reset all panel buttons (ns4, op5)
function b_clear() {
var i
for (i=0;i<this.sta.length;i++) {
if (this.sta[i] != 0)
this.mOut(i);
}
}
//----------------------------------------------------------------------------
// Panel functions for Netscape 4
//----------------------------------------------------------------------------
// write new htmlcode into the button layer
function b_mOver_ns4(nr) {
this.clear();
l=this.obj.layers[0].layers[nr].document;
l.open();
l.write("<Center>")
l.write("<SPAN class='imgbout'>")
l.write("<A href='#' onmouseOut='"+this.v+".mOut("+nr+")' ");
l.write("onMousedown='"+this.v+".mDown("+nr+")'><img src='"+this.img[nr]);
l.write("' border=0></A></SPAN><Font size=2 face=Arial color=#336666>");
l.write(this.lbl[nr]+"</FONT><BR>");
l.close();
this.sta[nr]=1;
}
function b_mOut_ns4(nr) {
l=this.obj.layers[0].layers[nr].document;
l.open();
l.write("<Center>")
l.write("<SPAN class='imgnob'>")
l.write("<A href='#' onmouseOver='"+this.v+".mOver("+nr+")' ");
l.write("onmouseOut='"+this.v+".mOut("+nr+")'><img src='"+this.img[nr]);
l.write("' border=0></A></SPAN><Font size=2 Face=Arial color=#336666>");
l.write(this.lbl[nr]+"</FONT><BR>");
l.close();
this.sta[nr]=0;
}
function b_mDown_ns4(nr) {
l=this.obj.layers[0].layers[nr].document;
l.open();
l.write("<Center>")
l.write("<SPAN class='imgbin'>")
l.write("<A href='#' onmouseOver='"+this.v+".mOver("+nr+")' ");
l.write("onmouseOut='"+this.v+".mOut("+nr+")' onMouseup='"+this.act[nr]);
l.write(";"+this.v+".mOver("+nr+")'><img src='"+this.img[nr]);
l.write("' border=0></A></SPAN><Font size=2 Face=Arial color=#336666>");
l.write(this.lbl[nr]+"</FONT><BR>");
l.close();
this.sta[nr]=1;
}
//test if scroll buttons should be visible
function b_testScroll_ns4() {
var i
var j
var k
i=this.obj.clip.bottom;
j=this.obj.layers[0].clip.bottom;
k=parseInt(this.obj.layers[0].top);
if (k==38)
this.obj.layers[2].visibility='hide';
else
this.obj.layers[2].visibility='show';
if ((j+k)<i) {
this.obj.layers[3].visibility='hide';
}
else
this.obj.layers[3].visibility='show';
}
//scroll the panel content up
function b_up_ns4(nr) {
this.ftop = this.ftop - 5;
this.obj.layers[0].top=this.ftop;
nr--
if (nr>0)
setTimeout(this.v+'.up('+nr+');',10);
else
this.testScroll();
}
//scroll the panel content down
function b_down_ns4(nr) {
this.ftop = this.ftop + 5;
if (this.ftop>=38) {
this.ftop=38;
nr=0;
}
this.obj.layers[0].top=this.ftop;
nr--
if (nr>0)
setTimeout(this.v+'.down('+nr+');',10);
else
this.testScroll();
}
//----------------------------------------------------------------------------
// Panel functions for Opera5
//----------------------------------------------------------------------------
//show one panelbutton layer and hide the others two
function b_mOver_op5(nr) {
var obj0=getObj(this.name+'_b'+nr+'0')
var obj1=getObj(this.name+'_b'+nr+'1')
var obj2=getObj(this.name+'_b'+nr+'2')
this.clear();
obj1.style.visibility="VISIBLE";
obj0.style.visibility="HIDDEN";
obj2.style.visibility="HIDDEN";
this.sta[nr]=1;
}
function b_mOut_op5(nr) {
var obj0=getObj(this.name+'_b'+nr+'0')
var obj1=getObj(this.name+'_b'+nr+'1')
var obj2=getObj(this.name+'_b'+nr+'2')
obj2.style.visibility="visible";
obj0.style.visibility="hidden";
obj1.style.visibility="hidden";
this.sta[nr]=1;
}
function b_mDown_op5(nr) {
var obj0=getObj(this.name+'_b'+nr+'0')
var obj1=getObj(this.name+'_b'+nr+'1')
var obj2=getObj(this.name+'_b'+nr+'2')
obj0.style.visibility="visible";
obj1.style.visibility="hidden";
obj2.style.visibility="hidden";
this.sta[nr]=1;
}
// ---------------------------------------------------------------------------
// Panel functions for ie4, ie5, ns5, op5
// ---------------------------------------------------------------------------
//test if scroll buttons should be visible
function b_testScroll() {
if (bt.op5) {
var i=parseInt(this.obj.style.pixelHeight);
var j=parseInt(this.objf.style.pixelHeight);
}
else {
var i=parseInt(this.obj.style.height);
var j=parseInt(this.objf.style.height);
}
var k=parseInt(this.objf.style.top);
if (k==38)
this.objm1.style.visibility='hidden';
else
this.objm1.style.visibility='visible';
if ((j+k)<i) {
this.objm2.style.visibility='hidden';
}
else
this.objm2.style.visibility='visible';
}
//scroll the panel content up
//scrolle den Panel Inhalt nach Oben
function b_up(nr) {
this.ftop = this.ftop - 5;
this.objf.style.top=this.ftop;
nr--;
if (nr>0)
setTimeout(this.v+'.up('+nr+');',10);
else
this.testScroll();
}
//scroll the panel content down
//scrolle den Panel Inhalt nach Unten
function b_down(nr) {
this.ftop = this.ftop + 5;
if (this.ftop>=38) {
this.ftop=38;
nr=0;
}
this.objf.style.top=this.ftop;
nr--
if (nr>0)
setTimeout(this.v+'.down('+nr+');',10);
else
this.testScroll();
}
// ---------------------------------------------------------------------------
// Panel object
// ---------------------------------------------------------------------------
//create one panel
function createPanel(name,caption) {
this.name=name; // panel layer ID
this.ftop=38; // actual panel scroll position
this.obj=null; // panel layer object
this.objc=null; // caption layer object
this.objf=null; // panel field layer object
this.objm1=null; // scroll button up
this.objm2=null; // scroll button down
this.caption=caption; // panel caption
this.img=new Array(); // button images ????????
this.lbl=new Array(); // button labels??????????
this.act=new Array(); // button actions????????????????
this.sta=new Array(); // button status (internal)
this.addButton=b_addButton; // add one button to panel????????panel??????????
this.clear=b_clear; // reset all buttons??????????????
if (bt.ns4) { // functions for ns4????????????????netscape4.0
this.mOver=b_mOver_ns4; // handles mouseOver event
this.mOut=b_mOut_ns4; // handles mouseOut & mouseUp event
this.mDown=b_mDown_ns4; // handles mouseDown event
this.testScroll=b_testScroll_ns4; // test if scroll buttons visible
this.up=b_up_ns4; // scroll panel buttons up
this.down=b_down_ns4; // scroll panel buttons down
}
if (bt.op5) { // functions for op5
this.mOver=b_mOver_op5; // handles mouseOver event
this.mOut=b_mOut_op5; // handles mouseOut & mouseUp event
this.mDown=b_mDown_op5; // handles mouseDown event
}
if (!bt.ns4) { // functions for all browsers but ns4
this.testScroll=b_testScroll; // test if scroll buttons should be visible
this.up=b_up; // scroll panel buttons up
this.down=b_down; // scroll panel buttons down
}
this.v = this.name + "var"; // global var of 'this'
eval(this.v + "=this");
return this
}
//add one panel to the outlookbar ????????panel
function b_addPanel(panel) {
panel.name=this.name+'_panel'+this.panels.length
this.panels[this.panels.length] = panel;
}
//write style sheets
//schreibe die Style sheets
function b_writeStyle() {
document.write('<STYLE TYPE="text/css">');
document.write('.button {width:300; color:#9499C6; text-align:center; font-family:arial;');
document.write(' font-size:10pt; cursor:hand; border-width:3;');
document.write(' border-style:outset; border-color:#9499C6; ');
document.write('bgcolor:#9499C6;}');
document.write('.noLine {text-decoration:none;font-size:10pt}');
document.write('.imgB {color:#003565; font-family:arial; font-size:10pt;}');
if (bt.op5) {
document.write('.imgbin {border-width:3; border-style:inset; ');
document.write('border-color:#336666;}');
}
else {
document.write('.imgbin {border-width:3; border-style:inset; ');
document.write('border-color:silver;}');
}
if (bt.op5) {
document.write('.imgbout {border-width:3; border-style:outset; ');
document.write('border-color:#336666;}');
}
else {
document.write('.imgbout {border-width:3; border-style:outset; ');
document.write('border-color:silver;}');
}
document.write(' .imgnob {border-width:0; border-style:solid; ');
document.write('border-color:'+this.bgcolor+';}');
document.write('</STYLE>');
}
// Draw the Outlook Bar
function b_draw() {
var i;
var j;
var t=0;
var h;
var c=0;
this.writeStyle();
if (bt.ns5 || bt.op5) c=6; //two times border width
if (bt.ns4) { //draw OutlookBar for ns4
//OutlookBar layer..
document.write('<layer bgcolor='+this.bgcolor+' name='+this.name+' left=');
document.write(this.xpos+' top='+this.ypos+' width='+this.width);
document.write(' clip="0,0,'+this.width+','+this.height+'">');
//one layer for every panel...
for (i=0;i<this.panels.length;i++) {
document.write('<Layer name='+this.name+'_panel'+i+' width='+this.width);
document.write(' top='+i*28+' bgcolor='+this.bgcolor);
document.write(' clip="0,0,'+this.width+',');
document.write(this.height-(this.panels.length-1)*28+'">');
//one layer to host the panel buttons
document.write('<Layer top=38 width='+this.width+'>');
mtop=0
//one layer for every button
for (j=0;j<this.panels[i].img.length;j++) {
document.write('<Layer top='+mtop+' width='+this.width);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -