⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fw_menu.js

📁 JSP工程应用与实践
💻 JS
📖 第 1 页 / 共 3 页
字号:

function hideMenu(mouseup, e) {
	var a = window.ActiveMenuItem;
	if (a && document.layers) {
		a.document.bgColor = a.saveColor;
		a.focusItem.top = -30;
		if (a.hilite) a.hilite.visibility = "hidden";
		if (mouseup && a.action && a.clicked && window.ActiveMenu) {
 			if (a.eX <= e.pageX+15 && a.eX >= e.pageX-15 && a.eY <= e.pageY+10 && a.eY >= e.pageY-10) {
				setTimeout('window.ActiveMenu.Menu.onMenuItemAction();', 2);
			}
		}
		a.clicked = false;
		if (a.Menu.bgImageOver) {
			a.background.src = a.Menu.bgImageUp;
		}
	} else if (window.ActiveMenu && FIND("menuItem0")) {
		if (a) {
			a.style.backgroundColor = a.saveColor;
			if (a.hilite) a.hilite.style.visibility = "hidden";
			if (a.Menu.bgImageUp) {
				a.style.background = "url(" + a.Menu.bgImageUp +")";;
			}
		}
	}
	if (!mouseup && window.ActiveMenu) {
		if (window.ActiveMenu.Menu) {
			if (window.ActiveMenu.Menu.hideOnMouseOut) {
				FW_startTimeout();
			}
			return(true);
		}
	}
	return(true);
}

function PxToNum(pxStr)
{ // pxStr == 27px, we want 27.
	if (pxStr.length > 2) {
		n = Number(pxStr.substr(0, pxStr.length-2));
		return(n);
	}
	return(0);
}

function hideChildMenu(hcmLayer) {
	FW_clearTimeout();
	var l = hcmLayer;
	for (var i=0; i < l.Menu.childMenus.length; i++) {
		var theLayer = l.Menu.childMenus[i];
		if (document.layers) {
			theLayer.visibility = "hidden";
		} else {
			theLayer = FIND(theLayer);
			theLayer.style.visibility = "hidden";
		}
		theLayer.Menu.hideChildMenu(theLayer);
	}

	if (l.childMenu) {
		var childMenu = l.childMenu;
		if (document.layers) {
			l.Menu.FW_showMenu(null,null,null,childMenu.layers[0]);
			childMenu.zIndex = l.parentLayer.zIndex +1;
			childMenu.top = l.top + l.parentLayer.top + l.Menu.menuLayer.top + l.Menu.menuItemHeight/3;
			if (childMenu.left + childMenu.clip.width > window.innerWidth) {
				childMenu.left = l.parentLayer.left - childMenu.clip.width + l.Menu.menuLayer.left + 15;
				l.Menu.container.clip.left -= childMenu.clip.width;
			} else {
				childMenu.left = l.parentLayer.left + l.parentLayer.clip.width  + l.Menu.menuLayer.left -5;
			}
			var w = childMenu.clip.width+childMenu.left-l.Menu.container.clip.left;
			if (w > l.Menu.container.clip.width)  
				l.Menu.container.clip.width = w;
			var h = childMenu.clip.height+childMenu.top-l.Menu.container.clip.top;
			if (h > l.Menu.container.clip.height) l.Menu.container.clip.height = h;
			l.document.layers[1].zIndex = 100;
			childMenu.visibility = "inherit";
		} else if (FIND("menuItem0")) {
			childMenu = FIND(l.childMenu);
			var menuLayer = FIND(l.Menu.menuLayer);
			var s = childMenu.style;
			s.zIndex = menuLayer.style.zIndex+1;
			if (document.all) { // ie case.
				s.pixelTop = l.style.pixelTop + menuLayer.style.pixelTop + l.Menu.menuItemHeight/3;
				s.left = s.pixelLeft = (menuLayer.style.pixelWidth) + menuLayer.style.pixelLeft -5;
			} else { // zilla case
				var top = PxToNum(l.style.top) + PxToNum(menuLayer.style.top) + l.Menu.menuItemHeight/3;
				var left = (PxToNum(menuLayer.style.width)) + PxToNum(menuLayer.style.left) -5;
				s.top = top;
				s.left = left;
			}
			childMenu.style.visibility = "inherit";
		} else {
			return;
		}
		window.activeMenus[window.activeMenus.length] = childMenu;
	}
}

function hideActiveMenus() {
	if (!window.activeMenus) return;
	for (var i=0; i < window.activeMenus.length; i++) {
		if (!activeMenus[i]) continue;
		if (activeMenus[i].visibility && activeMenus[i].Menu) {
			activeMenus[i].visibility = "hidden";
			activeMenus[i].Menu.container.visibility = "hidden";
			activeMenus[i].Menu.container.clip.left = 0;
		} else if (activeMenus[i].style) {
			var s = activeMenus[i].style;
			s.visibility = "hidden";
			s.left = -200;
			s.top = -200;
		}
	}
	if (window.ActiveMenuItem) {
		hideMenu(false, false);
	}
	window.activeMenus.length = 0;
}

function addMenuItemToExistingMenu( menuLabel, label, action )
{
	//First we need to find the menu that we're talking about
	var currentMenu = window.menus[menuLabel];
	
	//Now add the item to the menu's item list
	currentMenu.items[currentMenu.items.length] = label;
	currentMenu.actions[currentMenu.actions.length] = action;
}

function removeMenuItemFromExistingMenu( menuLabel, label )
{
	//First, get the menu we're talking about
	var currentMenu = window.menus[menuLabel];
	
	var newItemsArray = new Array();
	var newActionsArray = new Array();
	for( var i = 0; i < currentMenu.items.length; i++ )
	{
		if( currentMenu.items[i] != label )
		{
			newItemsArray[newItemsArray.length] = currentMenu.items[i];
			newActionsArray[newActionsArray.length] = currentMenu.actions[i];
		}
	}
	
	currentMenu.items = newItemsArray;
	currentMenu.actions = newActionsArray;
}
function updateWrittenMenus()
{
	if( !window.triedToWriteMenus )
	{
		writeMenus();
		return;
	}
	
	window.fwHideMenuTimer = null;	
	var countMenus = 0;
	var countItems = 0;
	var top = 0;
	var content = '';
	var theStat = "";
	var tsc = 0;
	
	//We don't know how to deal with Netscape
	if( document.layers ) return;
	for( var i=0; i<window.menus.length; i++, countMenus++ ) 
	{
		//Only change the menu contents, not the menus themselves
		var menu = window.menus[i];
		for( var j=0; j < menu.items.length; j++) {
			var item = menu.items[j];
			var childMenu = false;
			var defaultHeight = menu.fontSize+6;
			var defaultIndent = menu.fontSize;
			if( item.label ) 
			{
				item = item.label;
				childMenu = true;
			}
			menu.menuItemHeight = menu.menuItemHeight || defaultHeight;
			menu.menuItemIndent = menu.menuItemIndent || defaultIndent;
			
			var itemProps = 'font-family:' + menu.fontFamily +';font-weight:' + menu.fontWeight + ';fontSize:' + menu.fontSize + ';';
			if( menu.fontStyle ) 
			{ 
				itemProps += 'font-style:' + menu.fontStyle + ';';
			}
			itemProps += 'font-size:' + menu.fontSize + ';" onMouseOver="onMenuItemOver(null,this);" onClick="onMenuItemAction(null,this);';
			
//			if (document.all) 
//				itemProps += 'font-size:' + menu.fontSize + ';" onMouseOver="onMenuItemOver(null,this);" onClick="onMenuItemAction(null,this);';
//			else if (!document.layers) {
//				itemProps += 'font-size:' + menu.fontSize + 'px;'; // zilla wants 12px.
//			}
			var l;
			var dTag	= '<DIV ID="menuItem'+ countItems +'" STYLE="position:absolute;left:0;top:'+ (i * menu.menuItemHeight) +';'+ itemProps +'">';
			var dClose = '</DIV>'
			if (menu.bgImageUp) {
				dTag	= '<DIV ID="menuItem'+ countItems +'" STYLE="background:url('+menu.bgImageUp+');position:absolute;left:0;top:'+ (i * menu.menuItemHeight) +';'+ itemProps +'">';
			}
			var textProps = 'position:absolute;left:' + menu.menuItemIndent + ';top:1;';

			var dText	= '<DIV ID="menuItemText'+ countItems +'" STYLE="' + textProps + 'color:'+ menu.fontColor +';">'+ item +'&nbsp</DIV>\n<DIV ID="menuItemHilite'+ countItems +'" STYLE="' + textProps + 'top:1;color:'+ menu.fontColorHilite +';visibility:hidden;">'+ item +'&nbsp</DIV>';
			if (item == "separator") {
				content += ( dTag + '<DIV ID="menuSeparator'+ countItems +'" STYLE="position:absolute;left:1;top:2;"></DIV>\n<DIV ID="menuSeparatorLite'+ countItems +'" STYLE="position:absolute;left:1;top:2;"></DIV>\n' + dClose);
			} else if (childMenu) {
				content += ( dTag + dText + '<DIV ID="childMenu'+ countItems +'" STYLE="position:absolute;left:0;top:3;"><IMG SRC="'+ menu.childMenuIcon +'"></DIV>\n' + dClose);
			} else {
				content += ( dTag + dText + dClose);
			}
			countItems++;  
		}
		
		//Do we need this??
		content += '	  <DIV ID="focusItem'+ countMenus +'" STYLE="position:absolute;left:0;top:0;visibility:hide;" onClick="onMenuItemAction(null,this);">&nbsp;</DIV>\n';
		
		document.all["menuFg"+countMenus].innerHTML = content;
		content = '';
	}
	var menuCount = 0;
	for (var x=0; x<window.menus.length; x++) {
		var menu = window.menus[x];
		var top = 0;
		for (var i=0; i<window.menus[x].items.length; i++) {
			var l = FIND("menuItem" + menuCount);
			l.Menu = window.menus[x];
			l.style.pixelWidth = menu.menuItemWidth;	
			l.style.pixelHeight = menu.menuItemHeight;
			l.style.pixelTop = top;
			top = top + menu.menuItemHeight+menu.menuItemBorder;
			l.style.fontSize = menu.fontSize;
			l.style.backgroundColor = menu.menuItemBgColor;
			l.style.visibility = "inherit";
			l.saveColor = menu.menuItemBgColor;
			l.menuHiliteBgColor = menu.menuHiliteBgColor;
			l.action = window.menus[x].actions[i];
			l.hilite = FIND("menuItemHilite" + menuCount);
			l.focusItem = FIND("focusItem" + x);
			l.focusItem.style.pixelTop = l.focusItem.style.top = -30;
			var childItem = FIND("childMenu" + menuCount);
			if (childItem) {
				l.childMenu = window.menus[x].items[i].menuLayer;
				childItem.style.pixelLeft = childItem.style.left = menu.menuItemWidth -11;
				childItem.style.pixelTop = childItem.style.top =(menu.menuItemHeight /2) -4;
				//childItem.style.pixelWidth = 30 || 7;
				//childItem.style.clip = "rect(0 7 7 3)";
				l.Menu.childMenus[l.Menu.childMenus.length] = l.childMenu;
			}
			var sep = FIND("menuSeparator" + menuCount);
			if (sep) {
				sep.style.clip = "rect(0 " + (menu.menuItemWidth - 3) + " 1 0)";
				sep.style.width = sep.style.pixelWidth = menu.menuItemWidth;	
				sep.style.backgroundColor = menu.bgColor;
				sep = FIND("menuSeparatorLite" + menuCount);
				sep.style.clip = "rect(1 " + (menu.menuItemWidth - 3) + " 2 0)";
				sep.style.width = sep.style.pixelWidth = menu.menuItemWidth;	
				sep.style.backgroundColor = menu.menuLiteBgColor;
				l.style.height = l.style.pixelHeight = menu.menuItemHeight/2;
				l.isSeparator = true
				top -= (menu.menuItemHeight - l.style.pixelHeight)
			} else {
				if( document.all )
				{
					l.style.cursor = "hand";
				}
				else
				{
					l.style.cursor = "pointer";
				}
			}
			menuCount++;
		}
		menu.menuHeight = top-1;
		var lite = FIND("menuLite" + x);
		var s = lite.style;
		s.height = s.pixelHeight = menu.menuHeight +(menu.menuBorder * 2);
		s.width = s.pixelWidth = menu.menuItemWidth + (menu.menuBorder * 2);
		s.backgroundColor = menu.menuLiteBgColor;

		var body = FIND("menuFg" + x);
		s = body.style;
		s.height = s.pixelHeight = menu.menuHeight + menu.menuBorder;
		s.width = s.pixelWidth = menu.menuItemWidth + menu.menuBorder;
		s.backgroundColor = menu.bgColor;
		var menuLayer = FIND("menuLayer" + x);
		s = menuLayer.style;
		s.width = s.pixelWidth  = menu.menuItemWidth + (menu.menuBorder * 4);
		s.height = s.pixelHeight  = menu.menuHeight+(menu.menuBorder*4);
	}
	status = "";
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -