📄 ig_webmenu.js
字号:
else {
if(subMenu.scroller) {
subMenu.scroller.hide();
}
}
}
if(menuX + menuWidth > pageWidth + scrollLeft)
menuX = pageWidth - menuWidth + scrollLeft - 8;
if(menuX < scrollLeft)
menuX = scrollLeft;
if(menuY + menuHeight > pageHeight + scrollTop)
menuY = pageHeight - menuHeight + scrollTop - 8;
if(menuY < scrollTop)
menuY = scrollTop;
subMenu.style.top=menuY;
subMenu.style.left=menuX;
if(ig_csom.IsIE55Plus && subMenu.transPanel!=null) {
subMenu.transPanel.setPosition(subMenu.offsetTop, subMenu.offsetLeft, subMenu.offsetWidth, subMenu.offsetHeight);
subMenu.transPanel.show();
}
}
// private - implements the showing and hiding of submenus
this.hideSubMenu = function(subMenu) {
igmenu_callDisplayMenu(false, subMenu.id);
var mn=igmenu_getMenuNameByItemId(subMenu.id);
if(this.fireEvent(this.Events.SubMenuDisplay,"(\""+mn+"\",\""+subMenu.id+"\", false)"))
return;
// added to ensure deselecting of all items on close up
igmenu_unhoverAll(subMenu);
subMenu.style.display = "none";
subMenu.style.visibility = "hidden";
if((ig_csom.IsIE && !ig_csom.IsMac) && subMenu.transPanel!=null) {
//if(ig_csom.IsIE && subMenu.transPanel!=null) {
subMenu.transPanel.hide();
}
}
// private - Update internal buffer for items that are checked on or off
this.updateItemCheck = function(itemId, bChecked){
var formControl = igmenu_getElementById(this.UniqueId);
if(formControl == null)
return;
var menuState = formControl.value;
var newValue;
var oldValue;
if(bChecked){
oldValue = "0"; newValue = "1";
}
else{
oldValue = "1"; newValue = "0";
}
var oldString = itemId + ":Chck=" + oldValue + "<%;";
var newString = itemId + ":Chck=" + newValue + "<%;";
if(menuState.search(oldString) >= 0)
menuState = menuState.replace(oldString, newString);
else {
oldString = itemId + ":Chck=" + newValue + "<%;";
if(menuState.search(oldString) >= 0){
menuState = menuState.replace(oldString, newString);
}
else
menuState += newString;
}
formControl.value = menuState;
}
// private - clears all submenus from display
this.clearMenuTree = function(menu, clearAttribs) {
if(menu == null) {
if(ig_menuObject == null)
return;
menu = ig_menuObject.Element;
// UnHover the top menu item
var currentItemId = menu.igCurrentItem;
if(currentItemId != null && currentItemId.length > 0) {
this.unhoverItem(igmenu_getElementById(currentItemId), false);
}
if(clearAttribs) {
menu.igCurrentChild = null;
menu.igCurrentItem = null;
}
igmenu_displayItem = null;
this.CurrentLeftHandDisplay=this.LeftHandDisplay;
}
var childId = menu.childMenuId;
menu.childMenuId = null;
while(childId != null && childId.length > 0) {
var child = igmenu_getElementById(childId);
if(ig_menuObject != null)
ig_menuObject.hideSubMenu(child);
childId = child.childMenuId;
child.childMenuId = null;
if(clearAttribs)
child.igCurrentChild=null;
var currentItemId = child.igCurrentItem;
if(currentItemId != null && currentItemId.length > 0) {
this.unhoverItem(igmenu_getElementById(currentItemId), false);
}
if(clearAttribs)
child.igCurrentItem=null;
}
}
// private - clears the descendants of the passed in menu from display
this.clearDescendants = function(menu, clearAttribs) {
this.clearMenuTree(menu, clearAttribs);
ig_currentMenu = menu;
}
// private - Hides the menu if it is displayed as a popup
this.hide = function () {
ig_inMenu = false;
igmenu_mouseDown();
}
// private - displays menu item using the hover styles
this.hoverItem = function(item)
{
var hoverClass = item.getAttribute("igHov");
var topItem = item.getAttribute("igTop");
clearCurrentMenu = false;
var mn=igmenu_getMenuNameByItemId(item.id);
if(this.fireEvent(this.Events.ItemHover,"(\""+mn+"\",\""+item.id+"\", true)"))
return;
var td = this.cellFromRow(item);
if(hoverClass == null || hoverClass.length == 0) {
hoverClass = this.HoverClass;
}
if((topItem != null && topItem.length > 0)
&& (this.MenuTarget == 1 && this.WebMenuStyle >= 2 && this.TopHoverStarted == true) && this.TopSelectedClass.length > 0) {
hoverClass = this.TopSelectedClass;
var topHover = item.getAttribute("igHov");
if(td.className != "TopHover")
td.igClass = td.className;
}
else
if(td.className != null && td.className.length > 0) {
if(hoverClass == td.className)
return;
td.igClass = td.className;
}
var igDisabled = item.getAttribute("igDisabled");
if(igDisabled != null && igDisabled.length > 0) {
hoverClass = td.className;
}
if(hoverClass!=null && hoverClass.length > 0)
td.className = hoverClass;
var hoverimage = item.getAttribute("ighovimage");
if(igDisabled != null && igDisabled.length > 0)
return;
if(hoverimage != null && hoverimage.length > 0) {
var imgElem = this.getImageElement(item);
if(imgElem != null) {
item.setAttribute("igoldhovimage", imgElem.src);
imgElem.src=hoverimage;
}
}
}
// private - displays the item using non-hover styles
this.unhoverItem = function (item, bFireEvent) {
var mn=igmenu_getMenuNameByItemId(item.id);
if(this.MenuLoaded == false)
return;
if(bFireEvent && this.fireEvent(this.Events.ItemHover,"(\""+mn+"\",\""+item.id+"\", false)"))
return;
var td = this.cellFromRow(item);
td.className = "";
var prevClass = item.getAttribute("igPrevClass");
if(prevClass == null) {
if(td.igClass != null)
td.className = td.igClass;
}
else {
td.className = prevClass;
}
var hoverimage = item.getAttribute("igoldhovimage");
if(hoverimage != null && hoverimage.length > 0) {
var imgElem = this.getImageElement(item);
if(imgElem != null) {
imgElem.src=hoverimage;
}
}
}
// private - obtain the element containing the item image tag
this.getImageElement = function (item) {
var topItem = item.getAttribute("igTop");
var e = null;
if(topItem == "1" && this.MenuTarget == 1)
e = item.childNodes[0];
else
e = item.childNodes[0].childNodes[0];
if(e==null || e.tagName!="IMG")
return null;
return e;
}
// private - browser independant table cell from table row
this.cellFromRow = function(item) {
if(ig_csom.IsIE) {
if(item.tagName == "TR")
return item.childNodes[0];
else
return item;
}
else {
if(item.tagName == "TR") {
var x=0;
for(x=0;x<item.childNodes.length;x++) {
if(item.childNodes[x].tagName!=null && item.childNodes[x].tagName=="TD")
return item.childNodes[x];
}
}
else
return item;
}
}
// private - returns the tabIndex of the webMenu
this.getTabIndex = function(){return this.Element.tabIndex;}
}
// private - handles mouse over for scrollable submenus
var igmenu_scrollTimerId;
var igmenu_scrollMenu;
function igmenu_onScrollMouseOver(evnt) {
var e;
if(ig_csom.IsNetscape6) {
e = evnt.target;
}
else
e = evnt.srcElement;
if(e.tagName == "IMG")
e = e.parentNode;
ig_inMenu = true;
clearTimeout(igmenu_clearMenuId);
clearCurrentMenu = false;
igmenu_scrollMenu = e.parentNode;
var ms = igmenu_getMenuByItemId(e.parentNode.id);
ms.hoverItem(e);
if(e.topDiv) {
igmenu_scrollMenu.scrollInc = -4;
}
else
if(e.bottomDiv) {
igmenu_scrollMenu.scrollInc = 4;
}
clearInterval(igmenu_scrollTimerId);
igmenu_scrollTimerId = setInterval(igmenu_onMenuScroll, 30, igmenu_scrollMenu);
}
// private - handles mouse out for scrollable submenus
function igmenu_onScrollMouseOut(evnt) {
var e;
if(ig_csom.IsNetscape6) {
e = evnt.target;
}
else
e = evnt.srcElement;
if(e.tagName == "IMG") {
e = e.parentNode;
}
var ms = igmenu_getMenuByItemId(e.parentNode.id);
ms.unhoverItem(e, false);
clearInterval(igmenu_scrollTimerId);
igmenu_scrollMenu = null;
clearCurrentMenu = true;
clearTimeout(igmenu_clearMenuId);
igmenu_clearMenuId = setTimeout('TimerExpired()', ms.ExpandEffects.RemovalDelay);
}
// private - handles scrolling for scrollable submenus
function igmenu_onMenuScroll() {
if(igmenu_scrollMenu != null) {
var scrollDiv = igmenu_scrollMenu.childNodes[1];
// save the current scrollTop position
var oldValue = scrollDiv.scrollTop;
// increment the scrollTop property of the scrollDiv
scrollDiv.scrollTop += igmenu_scrollMenu.scrollInc;
// get references to the top and bottom divs and the menu object
var topDiv = igmenu_scrollMenu.scroller.topDiv;
var bottomDiv = igmenu_scrollMenu.scroller.bottomDiv;
var ms = igmenu_scrollMenu.scroller.ms;
// If at the top, display disabled up arrow
if(scrollDiv.scrollTop == 0) {
if(topDiv.innerHTML.indexOf(ms.ScrollImageTopDisabled) == -1) {
topDiv.innerHTML = "<img src='" + ms.ScrollImageTopDisabled + "'>"
clearInterval(igmenu_scrollTimerId);
}
}
else {
if(topDiv.innerHTML.indexOf(ms.ScrollImageTop) == -1)
topDiv.innerHTML = "<img src='" + ms.ScrollImageTop + "'>"
}
// If at the bottom, display disabled down arrow
if(oldValue == scrollDiv.scrollTop && oldValue > 0) {
if(bottomDiv.innerHTML.indexOf(ms.ScrollImageBottomDisabled) == -1) {
bottomDiv.innerHTML = "<img src='" + ms.ScrollImageBottomDisabled + "'>"
clearInterval(igmenu_scrollTimerId);
}
}
else {
if(bottomDiv.innerHTML.indexOf(ms.ScrollImageBottom) == -1)
bottomDiv.innerHTML = "<img src='" + ms.ScrollImageBottom + "'>"
}
}
}
// private - event initialization for menu object
function igmenu_events(events)
{
this.InitializeMenu=events[0];
this.ItemCheck=events[1];
this.ItemClick=events[2];
this.SubMenuDisplay=events[3];
this.ItemHover=events[4];
}
// private - event initialization for menu object
function igmenu_expandEffects(duration, opacity, type, shadowColor, shadowWidth, delay, removalDelay)
{
this.Duration=duration;
this.Opacity=opacity;
this.Type=type;
this.ShadowColor=shadowColor;
this.ShadowWidth=shadowWidth;
this.Delay=delay;
this.RemovalDelay = removalDelay
}
// private - 1.0 compatibility function for hiding select boxes
var igmenu_displayMenu = null;
function igmenu_callDisplayMenu(bShow, id) {
if(igmenu_displayMenu != null)
igmenu_displayMenu(bShow, id);
}
// private - hides all dropdown select controls for the document.
var ig_hidden=false;
function igmenu_hideDropDowns(bHide) {
if(igmenu_dropDowns == null)
return;
if(bHide){
if(ig_hidden)
return;
ig_hidden = true;
for (i=0; i<igmenu_dropDowns.length;i++)
igmenu_dropDowns[i].style.visibility='hidden';
}
else {
for (i=0; i<igmenu_dropDowns.length;i++){
igmenu_dropDowns[i].style.visibility='visible';
}
ig_hidden = false;
}
}
// private - creates an internal menu tree that has the top level menu as it's first element and adds one table
// object to the chain by setting the "childMenuId" property of the main menu to the id
// of the table that is the second link of the chain.
function igmenu_treeCreate(ms, tableItem) {
ms.clearMenuTree(null);
var menuObj = igmenu_getMenuByItemId(tableItem.id);
var menuElement = menuObj.MenuElement;
menuElement.childMenuId = tableItem.id;
ig_currentMenu = tableItem;
ig_menuObject = ms;
if(!ig_csom.IsIE55Plus && ms.HideDropDowns) {
igmenu_hideDropDowns(true);
}
}
// private - adds a menu to the internal menu tree
function igmenu_menuTreeAdd(subMenu) {
ig_currentMenu.childMenuId = subMenu.id;
ig_currentMenu = subMenu;
}
// private - implements mouseover event handling for the menu
function igmenu_mouseover(table, evnt,viaMouse) {
if (viaMouse==null) viaMouse = true;
var item = igmenu_getTblRow(evnt);
ig_inMenu = true;
if(item == null) {
var main;
if(ig_csom.IsIE) {
main = evnt.srcElement.getAttribute("igLevel");
if(main!=null && main.length>0 && main=="0")
clearCurrentMenu=false;
}
return;
}
var ms=igmenu_getMenuByItemId(item.id);
if(ms == null || ms.MenuLoaded == false)
return;
if(ig_menuObject && ig_menuObject != ms) {
ig_menuObject.clearMenuTree(null, true);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -