点击一个菜单隐藏和显示遇到的问题
下面这段代码是正确的,我从别处找到的,但我有个地方看不懂
就是红字部分,那和oMenu我找了半天不知道这个是哪的。大概知道是表示状态的。知道的人帮解释下。
<html>
<head>
<title>自动收缩的菜单</title>
</head>
<body link="#000000">
<!--将以下代码加入HTML的<Body></Body>之间-->
<script language="JavaScript1.2">
	ie=document.all?1:0
	n=document.layers?1:0
	lshow=60
	var move=10;
	menuSpeed=40
	var moveOnScroll=true
	var tim;
	var ltop;	
	function makeMenu(obj,nest){
		nest=(!nest) ? '':'document.'+nest+'.'
		this.css=(n) ? eval(nest+'document.'+obj):eval(obj+'.style')
		this.state=1
		this.go=0
		this.width=n?this.css.document.width:eval(obj+'.offsetWidth')
		this.left=b_getleft
		this.obj = obj + "Object";         eval(this.obj + "=this")
	}	
	function b_getleft(){
		var gleft=(n) ? eval(this.css.left):eval(this.css.pixelLeft);
		return gleft;
	}	
	function moveMenu(){
		if(!oMenu.state){
			clearTimeout(tim)
			mIn()
		}else{
			clearTimeout(tim)
			mOut()
		}
	}	
	function mIn(){
		if(oMenu.left()>-oMenu.width+lshow){
		oMenu.go=1
		oMenu.css.left=oMenu.left()-move
		tim=setTimeout("mIn()",menuSpeed)
		}else{
		oMenu.go=0
		oMenu.state=1
	}
	}	
	function mOut(){
		if(oMenu.left()<0){
		oMenu.go=1
		oMenu.css.left=oMenu.left()+move
		tim=setTimeout("mOut()",menuSpeed)
		}else{
		oMenu.go=0
		oMenu.state=0
		}
	}	
	function checkScrolled(){
		if(!oMenu.go) oMenu.css.top=eval(scrolled)+ltop
		if(n) setTimeout('checkScrolled()',30)
	}	
	function menuInit(){
		oMenu=new makeMenu('divMenu')
		scrolled=n?"window.pageYOffset":"document.body.scrollTop"
		oMenu.css.left=-oMenu.width+lshow
		ltop=(n)?oMenu.css.top:oMenu.css.pixelTop;
		oMenu.css.visibility='visible'
		if(moveOnScroll) ie?window.onscroll=checkScrolled:checkScrolled();
	}
	onload=menuInit;
</script>
<div id="divMenu"
	style="position: absolute; top: 163; left: 35; width: 173; visibility: hidden; background-color: ccccff; height: 19"><nobr>
<a href="#">图片</a>- <a href="#">字体</a>- <a href="#">下载</a>- <a href="#">素材</a>-
<a href="#">综合</a>- -- <a
	style="background-color: blue; text-decoration: none"
	href="javascript://" onclick="moveMenu()">导航菜单</a></nobr></div>
</body>
</html>
------解决方案--------------------
oMenu=new makeMenu('divMenu')
在一个函数里,不用var来限制的话,生命周期为全局。
变成var oMenu=new makeMenu('divMenu')的话,就只能在函数里用了。