関数 fwDoHide() { if (!fwDHFlag) return; var elapsed = new Date() - fwStart; if (経過 fwHideMenuTimer = setTimeout("fwDoHide()", 1100-elapsed); 戻る; } fwDHFlag = false; hideActiveMenus(); window.ActiveMenuItem = 0; }
function FW_showMenu(menu, x, y, child) { if (!window.fwWroteMenu) return; FW_clearTimeout(); if (document.layers) { if (メニュー) { var l = menu.menuLayer ||メニュー; l.left = 1; l.top = 1; hideActiveMenus(); if (this.visibility) l = this; window.ActiveMenu = l; } else { var l = 子; } if (!l) return; for (var i=0; i if (!l.layers[i].isHilite) l.layers[i].visibility = "遺産"; if (l.layers[i].document.layers.length > 0) FW_showMenu(null, "relative", "relative", l.layers[i]); } if (l.parentLayer) { if (x != "relative") l.parentLayer.left = x || window.pageX || 0; if (l.parentLayer.left + l.clip.width > window.innerWidth) l.parentLayer.left -= (l.parentLayer.left + l.clip.width - window.innerWidth); if (y != "相対") l.parentLayer.top = y || window.pageY || 0; if (l.parentLayer.isContainer) { l.Menu.xOffset = window.pageXOffset; l.Menu.yOffset = window.pageYOffset; l.parentLayer.clip.width = window.ActiveMenu.clip.width +2; l.parentLayer.clip.height = window.ActiveMenu.clip.height +2; if (l.parentLayer.menuContainerBgColor) l.parentLayer.document.bgColor = l.parentLayer.menuContainerBgColor; } } l.visibility = "継承"; if (l.Menu) l.Menu.container.visibility = "継承"; } else if (FIND("menuItem0")) { var l = menu.menuLayer ||メニュー; hideActiveMenus(); if (typeof(l) == "文字列") { l = FIND(l); } window.ActiveMenu = l; var s = l.style; s.visibility = "継承"; if (x != "相対") s.left = s.pixelLeft = x || (window.pageX + document.body.scrollLeft) || 0; if (y != "相対") s.top = s.pixelTop = y || (window.pageY + document.body.scrollTop) || 0; l.Menu.xOffset = document.body.scrollLeft; l.Menu.yOffset = document.body.scrollTop; } if (メニュー) { window.activeMenus[window.activeMenus.length] = l; } }
function onMenuItemDown(e, l) { var a = window.ActiveMenuItem; if (document.layers) { if (a) { a.eX = e.pageX; a.eY = e.pageY; a.クリック = true; } } }
function MouseupMenu(e) { hideMenu(true, e); hideActiveMenus(); true を返します。 }
function MouseoutMenu() { hideMenu(false, false); true を返します。 }
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 (マウスアップ && a.action && a.clicked && window.ActiveMenu) { if (a.eX <= e.pageX+15 && a.eX >= e.pageX-15 && 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) eMenu.Menu.hideOnMouseOut) { FW_startTimeout(); } return(true); } } return(true); }
function PxToNum(pxStr) { // pxStr == 27px、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 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 = 0; childMenu.visibility = "継承"; } 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) { // つまり、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 = トップ; s.left = 左; } childMenu.style.visibility = "継承"; } 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 = "非表示"; s.left = -200; s.top = -200; } } if (window.ActiveMenuItem) { hideMenu(false, false); } window.activeMenus.length = 0; }