hm_scriptdom.js
来自「FM MUDULATION SYSTEM COMUNICATION」· JavaScript 代码 · 共 845 行 · 第 1/3 页
JS
845 行
}
}
function HM_f_MakeElement(menuid) {
var MenuObject;
MenuObject = document.createElement("DIV");
with(MenuObject){
id = menuid;
with(style) {
position = "absolute";
visibility = "hidden";
left = "-500px";
top = "0px";
width = (HM_IEnoDTD ? HM_CurrentTree.MenuWidth : HM_CurrentTree.ItemWidth) + "px";
}
}
document.body.appendChild(MenuObject);
return MenuObject;
}
function HM_f_MakeMenu(menucount) {
if(!HM_f_ValidateArray(HM_ArrayIDPrefix + menucount)) return false;
HM_CurrentArray = eval(HM_ArrayIDPrefix + menucount);
NewMenu = document.getElementById(HM_MenuIDPrefix + menucount);
if(!NewMenu){
NewMenu = HM_f_MakeElement(HM_MenuIDPrefix + menucount);
if(HM_CurrentMenu) {
NewMenu.parentMenu = HM_CurrentMenu;
NewMenu.parentItem = HM_CurrentMenu.itemElement;
NewMenu.parentItem.child = NewMenu;
NewMenu.hasParent = true;
NewMenu.isHorizontal = HM_CurrentTree.TreeIsHorizontal;
NewMenu.showImage = HM_CurrentTree.TreeImageShow;
}
else {
NewMenu.isHorizontal = HM_CurrentTree.TopIsHorizontal;
NewMenu.showImage = HM_CurrentTree.TopImageShow;
HM_CurrentTree.treeParent = HM_CurrentTree.startChild = NewMenu;
}
HM_CurrentMenu = NewMenu;
HM_CurrentMenu.array = HM_CurrentArray;
HM_CurrentMenu.tree = HM_CurrentTree;
HM_CurrentMenu.itemCount = 0;
HM_CurrentMenu.maxItems = HM_CurrentMenu.array.length - 1;
HM_CurrentMenu.showIt = HM_f_ShowIt;
HM_CurrentMenu.count = menucount;
HM_CurrentMenu.keepInWindow = HM_f_KeepInWindow;
HM_CurrentMenu.onmouseover = HM_f_MenuOver;
HM_CurrentMenu.onmouseout = HM_f_MenuOut;
HM_CurrentMenu.hideTree = HM_f_HideTree
HM_CurrentMenu.hideParents = HM_f_HideParents;
HM_CurrentMenu.hideChildren = HM_f_HideChildren;
HM_CurrentMenu.hideTop = HM_f_HideTop;
HM_CurrentMenu.hideSelf = HM_f_HideSelf;
HM_CurrentMenu.hasChildVisible = false;
HM_CurrentMenu.isOn = false;
HM_CurrentMenu.hideTimer = null;
HM_CurrentMenu.currentItem = null;
HM_CurrentMenu.setMenuStyle = HM_f_SetMenuStyle;
HM_CurrentMenu.sizeFixed = false;
HM_CurrentMenu.fixSize = HM_f_FixSize;
if(HM_IE) HM_CurrentMenu.onselectstart = HM_f_CancelSelect;
HM_CurrentMenu.moveTo = HM_f_MoveTo;
HM_CurrentMenu.setMenuStyle();
}
while (HM_CurrentMenu.itemCount < HM_CurrentMenu.maxItems) {
HM_CurrentMenu.itemCount++;
HM_CurrentMenu.itemElement = document.getElementById(HM_ItemIDPrefix + menucount + "_" + HM_CurrentMenu.itemCount);
if(!HM_CurrentMenu.itemElement){
if(HM_StatusDisplayBuild) status = "Creating Hierarchical Menus: " + menucount + " / " + HM_CurrentMenu.itemCount;
HM_CurrentMenu.itemElement = HM_f_MakeItemElement(menucount);
}
if(HM_CurrentMenu.itemElement.hasMore && (!HM_CreateTopOnly || HM_AreCreated && HM_CreateTopOnly)) {
MenuCreated = HM_f_MakeMenu(menucount + "_" + HM_CurrentMenu.itemCount);
if(MenuCreated) {
HM_CurrentMenu = HM_CurrentMenu.parentMenu;
}
}
}
if(!HM_IE5M)HM_CurrentMenu.fixSize();
return HM_CurrentMenu;
}
function HM_f_SetMenuStyle(){
with(this.style) {
borderWidth = HM_BorderWidth + "px";
borderColor = HM_CurrentTree.BorderColor;
borderStyle = HM_BorderStyle;
overflow = "hidden";
cursor = "default";
}
}
function HM_f_MakeItemElement(menucount) {
var ItemElement = document.createElement("DIV");
ItemElement.id = HM_ItemIDPrefix + menucount + "_" + HM_CurrentMenu.itemCount;
ItemElement.style.position = "absolute";
ItemElement.style.visibility = "inherit";
HM_CurrentMenu.appendChild(ItemElement);
ItemElement.menu = HM_CurrentMenu;
ItemElement.setItemProperties = HM_f_SetItemProperties;
ItemElement.setItemProperties(menucount + "_" + HM_CurrentMenu.itemCount);
ItemElement.siblingBelow = ItemElement.previousSibling;
if(ItemElement.linkText && !ItemElement.ClickStart) {
ItemElement.onclick = HM_f_LinkIt;
if(HM_ShowLinkCursor)ItemElement.style.cursor = HM_NS6 ? "pointer" : "hand";
}
var FullPadding = (HM_ItemPadding*2) + HM_ImageSize + HM_ImageHorizSpace;
if(ItemElement.hasMore && HM_CurrentMenu.showImage) {
var ImageElement = document.createElement("IMG");
ItemElement.imageSrc = HM_CurrentTree.RightToLeft ? HM_ImageSrcLeft : HM_ImageSrc;
with(ImageElement){
src = ItemElement.imageSrc;
removeAttribute("height");
hspace = (!HM_CurrentTree.RightToLeft && HM_IE5W) ? HM_ItemPadding : 0;
vspace = 0;
width = HM_ImageSize;
with(style) {
if(HM_CurrentTree.RightToLeft) {
position = "absolute";
top = (HM_ItemPadding + HM_ImageVertSpace) + "px";
left = (HM_ItemPadding + HM_ImageHorizSpace) + "px";
}
else {
position = "relative";
marginTop = HM_ImageVertSpace + "px";
if(HM_IE5W) {
marginRight = -FullPadding + "px";
}
else marginRight = -(HM_ImageSize + HM_ItemPadding) +"px";
if(HM_NS6) cssFloat = "right";
else styleFloat = "right";
}
}
}
ItemElement.imgLyr = ImageElement;
ItemElement.hasImageRollover = ((!HM_CurrentTree.RightToLeft && HM_ImageSrcOver) || (HM_CurrentTree.RightToLeft && HM_ImageSrcLeftOver));
if(ItemElement.hasImageRollover) {
ItemElement.imageSrcOver = HM_CurrentTree.RightToLeft ? HM_ImageSrcLeftOver : HM_ImageSrcOver;
}
}
ItemElement.innerHTML = ItemElement.dispText;
if(ImageElement) ItemElement.insertBefore(ImageElement,ItemElement.firstChild);
ItemElement.setItemStyle();
return ItemElement;
}
function HM_f_SetItemStyle() {
with(this.style){
backgroundColor = (this.permHilite) ? HM_CurrentTree.BGColorOver : HM_CurrentTree.BGColor;
color = (this.permHilite) ? HM_CurrentTree.FontColorOver : HM_CurrentTree.FontColor;
padding = HM_ItemPadding +"px";
font = ((HM_FontBold) ? "bold " : "normal ") + HM_FontSize + "pt " + HM_FontFamily;
fontStyle = (HM_FontItalic) ? "italic" : "normal";
if(HM_IE) overflow = "hidden";
if(HM_CurrentMenu.showImage) {
var FullPadding = (HM_ItemPadding*2) + HM_ImageSize + HM_ImageHorizSpace;
if (HM_CurrentTree.RightToLeft) paddingLeft = FullPadding + "px";
else paddingRight = FullPadding + "px";
}
if(!this.isLastItem) {
var SeparatorString = HM_SeparatorSize + "px solid " + this.tree.SeparatorColor;
if (this.menu.isHorizontal) borderRight = SeparatorString;
else borderBottom = SeparatorString;
}
if(HM_IEnoDTD) width = HM_CurrentTree.ItemWidth + "px";
else width = (HM_CurrentTree.ItemWidth - (parseInt(paddingLeft) + parseInt(paddingRight))) + "px";
if(this.menu.isHorizontal){
if(HM_IEnoDTD){
if(this.isLastItem) width = (HM_CurrentTree.MenuWidth - HM_BorderWidth - HM_SeparatorSize) + "px"
else width = (HM_CurrentTree.MenuWidth - HM_BorderWidth) + "px"
}
else {
width = (HM_CurrentTree.MenuWidth - HM_BorderWidth - parseInt(paddingLeft) - parseInt(paddingRight) - HM_SeparatorSize) + "px";
}
top = "0px";
if(HM_IEnoDTD){
left = (this.index * (HM_CurrentTree.MenuWidth - HM_BorderWidth)) + "px";
}
else {
left = ((this.index * parseInt(width)) + ((HM_SeparatorSize * this.index))) + ((parseInt(paddingLeft) + parseInt(paddingRight)) * this.index) + "px";
}
var LeftAndWidth = parseInt(left) + parseInt(width);
this.menu.style.width = LeftAndWidth + (HM_IEnoDTD ? (HM_BorderWidth * 2) : (parseInt(paddingLeft) + parseInt(paddingRight))) + "px"
}
else {
left = "0px";
}
}
}
function HM_f_FixSize(makevis){
if(this.isHorizontal) {
var MaxItemHeight = 0;
for(i=0; i<this.childNodes.length; i++) {
var TempItem = this.childNodes[i];
if (TempItem.index) {
var SiblingHeight = TempItem.siblingBelow.offsetHeight - (HM_IEnoDTD ? 0 : HM_ItemPadding * 2);
MaxItemHeight = Math.max(MaxItemHeight,SiblingHeight);
}
else{
MaxItemHeight = TempItem.offsetHeight;
}
}
for(i=0; i<this.childNodes.length; i++) {
this.childNodes[i].style.height = MaxItemHeight +"px";
}
this.style.height = MaxItemHeight + (HM_IEnoDTD ? HM_BorderWidth * 2 : 0) + "px";
}
else {
for(i=0; i<this.childNodes.length; i++) {
var TempItem = this.childNodes[i];
if (TempItem.index) {
var SiblingHeight =(TempItem.siblingBelow.offsetHeight);
TempItem.style.top = parseInt(TempItem.siblingBelow.style.top) + SiblingHeight + "px";
}
else TempItem.style.top = "0px";
}
this.style.height = parseInt(TempItem.style.top) + (HM_IE5W ? TempItem.scrollHeight : TempItem.offsetHeight) + (HM_IEnoDTD ? (HM_BorderWidth * 2) : 0) + "px";
}
this.sizeFixed = true;
if(makevis)this.style.visibility = "visible";
}
function HM_f_PopUp(menuname,e){
if(HM_IE) e = event;
if (!HM_AreLoaded) return;
menuname = menuname.replace("elMenu",HM_MenuIDPrefix);
var TempMenu = document.getElementById(menuname);
if(!TempMenu)return;
HM_CurrentMenu = TempMenu;
if (HM_CurrentMenu.tree.ClickStart) {
var ClickElement = (HM_IE) ? e.srcElement : e.target;
if(HM_NS6) {
while(ClickElement.tagName==null){
ClickElement = ClickElement.parentNode;
}
}
ClickElement.onclick = HM_f_PopMenu;
}
else HM_f_PopMenu(e);
}
function HM_f_PopMenu(e){
if(HM_IE) e = event;
if (!HM_AreLoaded || !HM_AreCreated) return true;
if (HM_CurrentMenu.tree.ClickStart && e.type != "click") return true;
var mouse_x_position, mouse_y_position;
HM_f_HideAll();
HM_CurrentMenu.hasParent = false;
HM_CurrentMenu.tree.startChild = HM_CurrentMenu;
HM_CurrentMenu.mouseX = mouse_x_position = (HM_IE) ? (e.clientX + document.body.scrollLeft) : e.pageX;
HM_CurrentMenu.mouseY = mouse_y_position = (HM_IE) ? (e.clientY + document.body.scrollTop) : e.pageY;
HM_CurrentMenu.xIntended = HM_CurrentMenu.xPos = (HM_CurrentMenu.tree.MenuLeft!=null) ? eval(HM_CurrentMenu.tree.MenuLeft) : mouse_x_position;
HM_CurrentMenu.yIntended = HM_CurrentMenu.yPos = (HM_CurrentMenu.tree.MenuTop!=null) ? eval(HM_CurrentMenu.tree.MenuTop) : mouse_y_position;
if(HM_IE5M && !HM_CurrentMenu.sizeFixed) HM_CurrentMenu.fixSize(false);
HM_CurrentMenu.keepInWindow();
HM_CurrentMenu.moveTo(HM_CurrentMenu.xPos,HM_CurrentMenu.yPos);
HM_CurrentMenu.isOn = true;
HM_CurrentMenu.showIt(true);
return false;
}
function HM_f_MenuOver() {
if(!this.tree.startChild){this.tree.startChild = this}
if(this.tree.startChild == this) HM_f_HideAll(this)
this.isOn = true;
HM_UserOverMenu = true;
HM_CurrentMenu = this;
if (this.hideTimer) clearTimeout(this.hideTimer);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?