📄 menu.js
字号:
function OpenWindows(url)
{
var
newwin=window.open(url,"_blank","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,top=50,left=120,width=250,height=120");
return false;
}
function DynLayer(id,nestref,frame) {
if (!DynLayer.set && !frame) DynLayerInit()
this.frame = frame || self
if (is.ns) {
if (is.ns4) {
if (!frame) {
if (!nestref) var nestref = DynLayer.nestRefArray[id]
if (!DynLayerTest(id,nestref)) return
this.css = (nestref)? eval("document."+nestref+".document."+id) : document.layers[id]
}
else this.css = (nestref)? eval("frame.document."+nestref+".document."+id) : frame.document.layers[id]
this.elm = this.event = this.css
this.doc = this.css.document
}
if (is.ns5) {
this.elm = document.getElementById(id)
this.css = this.elm.style
this.doc = document
}
this.x = this.css.left
this.y = this.css.top
this.w = this.css.clip.width
this.h = this.css.clip.height
}
else if (is.ie) {
this.elm = this.event = this.frame.document.all[id]
this.css = this.frame.document.all[id].style
this.doc = document
this.x = this.elm.offsetLeft
this.y = this.elm.offsetTop
this.w = (is.ie4)? this.css.pixelWidth : this.elm.offsetWidth
this.h = (is.ie4)? this.css.pixelHeight : this.elm.offsetHeight
}
this.id = id
this.nestref = nestref
this.obj = id + "DynLayer"
eval(this.obj + "=this")
}
function DynLayerSetWidth(w) {
this.css.width = w>0?w:0+"px"
}
function DynLayerSetHeight(h) {
this.css.height = h>0?h:0+"px"
}
function DynLayerMoveTo(x,y) {
if (x!=null) {
this.x = x
if (is.ns) this.css.left = this.x
else this.css.pixelLeft = this.x
}
if (y!=null) {
this.y = y
if (is.ns) this.css.top = this.y
else this.css.pixelTop = this.y
}
}
function DynLayerMoveX(x) {
if (x!=null) {
this.x = x
this.css.left = this.x
}
}
function DynLayerMoveY(y) {
if (y!=null) {
this.y = y
this.css.top = this.y
}
}
function DynLayerMoveBy(x,y) {
this.moveTo(this.x+x,this.y+y)
}
function DynLayerShow() {
this.css.visibility = (is.ns)? "show" : "visible"
}
function DynLayerHide() {
this.css.visibility = (is.ns)? "hide" : "hidden"
}
DynLayer.prototype.moveTo = DynLayerMoveTo
DynLayer.prototype.moveX = DynLayerMoveX
DynLayer.prototype.moveY = DynLayerMoveY
DynLayer.prototype.moveBy = DynLayerMoveBy
DynLayer.prototype.show = DynLayerShow
DynLayer.prototype.hide = DynLayerHide
DynLayer.prototype.setWidth = DynLayerSetWidth
DynLayer.prototype.setHeight = DynLayerSetHeight
DynLayerTest = new Function('return true')
// DynLayerInit Function
function DynLayerInit(nestref) {
if (!DynLayer.set) DynLayer.set = true
if (is.ns) {
if (nestref) ref = eval('document.'+nestref+'.document')
else {nestref = ''; ref = document;}
for (var i=0; i<ref.layers.length; i++) {
var divname = ref.layers[i].name
DynLayer.nestRefArray[divname] = nestref
var index = divname.indexOf("Div")
if (index > 0) {
eval(divname.substr(0,index)+' = new DynLayer("'+divname+'","'+nestref+'")')
}
if (ref.layers[i].document.layers.length > 0) {
DynLayer.refArray[DynLayer.refArray.length] = (nestref=='')? ref.layers[i].name : nestref+'.document.'+ref.layers[i].name
}
}
if (DynLayer.refArray.i < DynLayer.refArray.length) {
DynLayerInit(DynLayer.refArray[DynLayer.refArray.i++])
}
}
else if (is.ie) {
for (var i=0; i<document.all.tags("DIV").length; i++) {
var divname = document.all.tags("DIV")[i].id
var index = divname.indexOf("Div")
if (index > 0) {
eval(divname.substr(0,index)+' = new DynLayer("'+divname+'")')
}
}
}
return true
}
DynLayer.nestRefArray = new Array()
DynLayer.refArray = new Array()
DynLayer.refArray.i = 0
DynLayer.set = false
// Slide Methods
function DynLayerSlideTo(endx,endy,inc,speed,fn) {
if (endx==null) endx = this.x
if (endy==null) endy = this.y
var distx = endx-this.x
var disty = endy-this.y
this.slideStart(endx,endy,distx,disty,inc,speed,fn)
}
function DynLayerSlideBy(distx,disty,inc,speed,fn) {
var endx = this.x + distx
var endy = this.y + disty
this.slideStart(endx,endy,distx,disty,inc,speed,fn)
}
function DynLayerSlideStart(endx,endy,distx,disty,inc,speed,fn) {
if (this.slideActive) return
if (!inc) inc = 10
if (!speed) speed = 5
var num = Math.sqrt(Math.pow(distx,2) + Math.pow(disty,2))/inc
if (num==0) return
var dx = distx/num
var dy = disty/num
if (!fn) fn = null
this.slideActive = true
this.slide(dx,dy,endx,endy,num,1,speed,fn)
}
function DynLayerSlide(dx,dy,endx,endy,num,i,speed,fn) {
if (!this.slideActive) return
if (i++ < num) {
this.moveBy(dx,dy)
this.onSlide()
if (this.slideActive) setTimeout(this.obj+".slide("+dx+","+dy+","+endx+","+endy+","+num+","+i+","+speed+",\""+fn+"\")",speed)
else this.onSlideEnd()
}
else {
this.slideActive = false
this.moveTo(endx,endy)
this.onSlide()
this.onSlideEnd()
eval(fn)
}
}
DynLayerSlideInit = new Function()
DynLayer.prototype.slideInit = new Function()
DynLayer.prototype.slideTo = DynLayerSlideTo
DynLayer.prototype.slideBy = DynLayerSlideBy
DynLayer.prototype.slideStart = DynLayerSlideStart
DynLayer.prototype.slide = DynLayerSlide
DynLayer.prototype.onSlide = new Function()
DynLayer.prototype.onSlideEnd = new Function()
// Clip Methods
function DynLayerClipInit(clipTop,clipRight,clipBottom,clipLeft) {
if (is.ie) {
if (arguments.length==4) this.clipTo(clipTop,clipRight,clipBottom,clipLeft)
else if (is.ie4) this.clipTo(0,this.css.pixelWidth,this.css.pixelHeight,0)
}
}
function DynLayerClipTo(t,r,b,l) {
if (t==null) t = this.clipValues('t')
if (r==null) r = this.clipValues('r')
if (b==null) b = this.clipValues('b')
if (l==null) l = this.clipValues('l')
if (is.ns) {
this.css.clip.top = t
this.css.clip.right = r
this.css.clip.bottom = b
this.css.clip.left = l
}
else if (is.ie) this.css.clip = "rect("+t+"px "+r+"px "+b+"px "+l+"px)"
}
function DynLayerClipBy(t,r,b,l) {
this.clipTo(this.clipValues('t')+t,this.clipValues('r')+r,this.clipValues('b')+b,this.clipValues('l')+l)
}
function DynLayerClipValues(which) {
if (is.ie) var clipv = this.css.clip.split("rect(")[1].split(")")[0].split("px")
if (which=="t") return (is.ns)? this.css.clip.top : Number(clipv[0])
if (which=="r") return (is.ns)? this.css.clip.right : Number(clipv[1])
if (which=="b") return (is.ns)? this.css.clip.bottom : Number(clipv[2])
if (which=="l") return (is.ns)? this.css.clip.left : Number(clipv[3])
}
DynLayer.prototype.clipInit = DynLayerClipInit
DynLayer.prototype.clipTo = DynLayerClipTo
DynLayer.prototype.clipBy = DynLayerClipBy
DynLayer.prototype.clipValues = DynLayerClipValues
// Write Method
function DynLayerWrite(html) {
if (is.ns) {
this.doc.open()
this.doc.write(html)
this.doc.close()
}
else if (is.ie) {
this.event.innerHTML = html
}
}
DynLayer.prototype.write = DynLayerWrite
// BrowserCheck Object
function BrowserCheck() {
var b = navigator.appName
if (b=="Netscape") this.b = "ns"
else if (b=="Microsoft Internet Explorer") this.b = "ie"
else this.b = b
this.version = navigator.appVersion
this.v = parseInt(this.version)
this.ns = (this.b=="ns" && this.v>=4)
this.ns4 = (this.b=="ns" && this.v==4)
this.ns5 = (this.b=="ns" && this.v==5)
this.ie = (this.b=="ie" && this.v>=4)
this.ie4 = (this.version.indexOf('MSIE 4')>0)
this.ie5 = (this.version.indexOf('MSIE 5')>0)
this.min = (this.ns||this.ie)
}
is = new BrowserCheck()
// CSS Function
function css(id,left,top,width,height,color,vis,z,other) {
if (id=="START") return '<STYLE TYPE="text/css">\n'
else if (id=="END") return '</STYLE>'
var str = (left!=null && top!=null)? '#'+id+' {position:absolute; left:'+left+'px; top:'+top+'px;' : '#'+id+' {position:relative;'
if (arguments.length>=4 && width!=null) str += ' width:'+width+'px;'
if (arguments.length>=5 && height!=null) {
str += ' height:'+height+'px;'
if (arguments.length<9 || other.indexOf('clip')==-1) str += ' clip:rect(0px '+width+'px '+height+'px 0px);'
}
if (arguments.length>=6 && color!=null) str += (is.ns)? ' layer-background-color:'+color+';' : ' background-color:'+color+';'
if (arguments.length>=7 && vis!=null) str += ' visibility:'+vis+';'
if (arguments.length>=8 && z!=null) str += ' z-index:'+z+';'
if (arguments.length==9 && other!=null) str += ' '+other
str += '}\n'
return str
}
function writeCSS(str,showAlert) {
str = css('START')+str+css('END')
document.write(str)
if (showAlert) alert(str)
}
function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}
///////////////////////////////////////
/////////////////////////////////
var menubarheight = 0;
var menubarsum = 0;
var menuspeed = 10;
var menuinc = 100;
var scrollspeed = 100;
var scrollinc = 60;
var menuchoose = 0;
var iconX = new Array(menubarsum);
var menuIconWidth = new Array(menubarsum);
var menuIconHeight = new Array(menubarsum);
var menuscroll = 0;
var iconareaheight = 0;
var iconrightpos = 0;
var maxscroll = 0;
var scrolling = false;
var scrollTimerID = 0;
function init(mnum, mheight) {
menubarheight = mnum
menubarsum = mheight
menulayer = new Array(menubarsum)
iconlayer = new Array(menubarsum)
barlayer = new Array(menubarsum)
uplayer = new Array(menubarsum)
downlayer = new Array(menubarsum)
for (var i=0; i<menubarsum; i++) {
menulayer[i] = new DynLayer("menulayer" + i + "Div")
menulayer[i].slideInit()
iconlayer[i] = new DynLayer("iconlayer" + i + "Div", "menulayer" + i + "Div")
iconlayer[i].slideInit()
/*iconlayer[i].setWidth(document.body.clientWidth);*/
if (menuIconWidth[i] > document.body.clientWidth) {
iconlayer[i].setWidth(menuIconWidth[i])
iconX[i] = (document.body.clientWidth-menuIconWidth[i])/2
} else {
iconlayer[i].setWidth(document.body.clientWidth)
iconX[i] = 0
}
iconlayer[i].moveTo(iconX[i], menubarheight)
barlayer[i] = new DynLayer("barlayer" + i + "Div", "menulayer" + i + "Div")
barlayer[i].slideInit()
uplayer[i] = new DynLayer("uplayer" + i + "Div", "menulayer" + i + "Div")
uplayer[i].slideInit()
downlayer[i] = new DynLayer("downlayer" + i + "Div", "menulayer" + i + "Div")
downlayer[i].slideInit()
}
menureload()
}
function menubarpush(num) {
if (num != menuchoose && num >= 0 && num < menubarsum) {
iconlayer[menuchoose].moveTo(iconX[menuchoose],menubarheight)
menuscroll = 0
scrolling = false
for (var i=0; i <=num; i++) {
menulayer[i].slideTo(0, i*menubarheight, menuinc, menuspeed)
}
nAdCornerOriginY = document.body.clientHeight;
nAdCornerOriginY += document.body.scrollTop;
for (var i=menubarsum-1; i>num; i--) {
nAdCornerOriginY -= menubarheight
menulayer[i].slideTo(0,nAdCornerOriginY, menuinc, menuspeed)
}
menuchoose = num
menuscrollbar()
}
}
function menureload() {
nAdCornerOriginY = document.body.clientHeight;
nAdCornerOriginY += document.body.scrollTop;
for (var i=menubarsum-1; i>menuchoose; i--) {
nAdCornerOriginY -= menubarheight
menulayer[i].moveTo(0, nAdCornerOriginY)
}
for (var i=0; i<menubarsum; i++) {
if (menuIconWidth[i] > document.body.clientWidth) {
iconlayer[i].setWidth(menuIconWidth[i])
iconX[i] = (document.body.clientWidth-menuIconWidth[i])/2
} else {
iconlayer[i].setWidth(document.body.clientWidth)
iconX[i] = 0
}
iconlayer[i].moveX(iconX[i], menubarheight)
}
menuscrollbar()
}
function menuscrollbar() {
iconareaheight = document.body.clientHeight-menubarheight*(menubarsum);
iconrightpos = document.body.clientWidth-16-4;
maxscroll = menuIconHeight[menuchoose] - iconareaheight
if (maxscroll > 0) {
if (menuscroll > 0) {
uplayer[menuchoose].moveTo(iconrightpos, menubarheight+4)
} else {
uplayer[menuchoose].moveTo(-20, 0)
}
if (menuscroll < maxscroll) {
downlayer[menuchoose].moveTo(iconrightpos, iconareaheight+2)
} else {
downlayer[menuchoose].moveTo(-20, 0)
}
} else {
if (menuscroll <= 0)
uplayer[menuchoose].moveTo(-20, 0)
downlayer[menuchoose].moveTo(-20, 0)
}
}
function menuscrollup() {
if (menuscroll > 0) {
scrolling = true
menuscroll -= scrollinc
iconlayer[menuchoose].moveTo(iconX[menuchoose], menubarheight-menuscroll)
scrollTimerID = setTimeout("menuscrollup()", scrollspeed)
} else {
menuscrollstop()
}
menuscrollbar()
}
function menuscrolldown() {
if (menuscroll < maxscroll) {
scrolling = true
menuscroll += scrollinc
if (menuscroll < maxscroll) {
iconlayer[menuchoose].moveTo(iconX[menuchoose], menubarheight-menuscroll)
} else {
iconlayer[menuchoose].moveTo(iconX[menuchoose], menubarheight-maxscroll)
}
scrollTimerID = setTimeout("menuscrolldown()", scrollspeed)
} else {
menuscrollstop()
}
menuscrollbar()
}
function menuscrollstop() {
scrolling = false
if (scrollTimerID) {
clearTimeout(scrollTimerID)
scrollTimerID = 0;
}
}
function window_onresize() {
menureload()
}
////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -