menu.js
上传用户:zghglow
上传日期:2022-08-09
资源大小:27227k
文件大小:4k
源码类别:

WEB源码(ASP,PHP,...)

开发平台:

JavaScript

  1. /*-------------------------------------------
  2. |      Simple Cross Browser Menu Script      |
  3. |--------------------------------------------|
  4. |        Author:        Emil A. Eklund       |
  5. |        First Created: May 19, 2000         |
  6. |        Last Updated:  Aug 17, 2000         |
  7. |--------------------------------------------|
  8. |     Created to work with ie4+ and ns4+     |
  9. -------------------------------------------*/
  10. menuPrefix = 'menu';  // Prefix that all menu layers must start with
  11.                       // All layers with this prefix will be treated
  12.                       // as a part of the menu system.
  13. var menuTree, mouseMenu, hideTimer, doHide;
  14. function init() {
  15.   ie4 = (document.all)?true:false;
  16.   ns4 = (document.layers)?true:false;
  17.   document.onmousemove = mouseMove;
  18.   if (ns4) { document.captureEvents(Event.MOUSEMOVE); }
  19. }
  20. function expandMenu(menuContainer,subContainer,menuLeft,menuTop) {
  21. // Hide all submenus thats's not below the current level
  22. doHide = false;
  23.   if (menuContainer != menuTree) {
  24.   if (ie4) {
  25.       var menuLayers = document.all.tags("DIV");
  26.       for (i=0; i<menuLayers.length; i++) {
  27.         if ((menuLayers[i].id.indexOf(menuContainer) != -1) && (menuLayers[i].id != menuContainer)) {
  28.           hideObject(menuLayers[i].id);
  29.         }
  30.       }
  31.     }
  32.     else if (ns4) {
  33.       for (i=0; i<document.layers.length; i++) {
  34.         var menuLayer = document.layers[i];
  35.         if ((menuLayer.id.indexOf(menuContainer) != -1) && (menuLayer.id != menuContainer)) {
  36.           menuLayer.visibility = "hide";
  37.         }
  38.       }
  39.     }
  40.   }
  41.   // If this is item has a submenu, display it, or it it's a toplevel menu, open it
  42.   if (subContainer) {
  43.     if ((menuLeft) && (menuTop)) {
  44.      positionObject(subContainer,menuLeft,menuTop);
  45.      hideAll();
  46.     }
  47.     else {
  48.       if (ie4) {
  49.        positionObject(subContainer, document.all[menuContainer].offsetWidth + document.all[menuContainer].style.pixelLeft - 10, mouseY);
  50.       }
  51.       else {
  52.        positionObject(subContainer, document.layers[menuContainer].document.width + document.layers[menuContainer].left + 50, mouseY);
  53.       }
  54.     }
  55.     showObject(subContainer);
  56.     menuTree = subContainer;
  57.   }
  58. }
  59. function showObject(obj) {
  60.   if (ie4) { document.all[obj].style.visibility = "visible"; }
  61.   else if (ns4) { document.layers[obj].visibility = "show";  }
  62. }
  63. function hideObject(obj) {
  64.   if (ie4) { document.all[obj].style.visibility = "hidden"; }
  65.   else if (ns4) { document.layers[obj].visibility = "hide"; }
  66. }
  67. function positionObject(obj,x,y) {
  68.   if (ie4) {
  69.     var foo = document.all[obj].style;
  70.     foo.left = x;
  71.     foo.top = y;
  72.   }
  73.   else if (ns4) {
  74.     var foo = document.layers[obj];
  75.     foo.left = x;
  76.     foo.top = y;
  77.    }
  78. }
  79. function hideAll() {
  80.  if (ie4) {
  81.     var menuLayers = document.all.tags("DIV");
  82.     for (i=0; i<menuLayers.length; i++) {
  83.       if (menuLayers[i].id.indexOf(menuPrefix) != -1) {
  84.         hideObject(menuLayers[i].id);
  85.       }
  86.     }
  87.   }
  88.   else if (ns4) {
  89.     for (i=0; i<document.layers.length; i++) {
  90.       var menuLayer = document.layers[i];
  91.       if (menuLayer.id.indexOf(menuPrefix) != -1) {
  92.         hideObject(menuLayer.id);
  93.       }
  94.     }
  95.   }
  96. }
  97. function hideMe(hide) {
  98. if (hide) {
  99. if (doHide) { hideAll(); }
  100. }
  101. else {
  102. doHide = true;
  103. hideTimer = window.setTimeout("hideMe(true);", 2000);
  104. }
  105. }
  106. function mouseMove(e) {
  107.   if (ie4) { mouseY = window.event.y; }
  108.   if (ns4) { mouseY = e.pageY; }
  109. }
  110. function itemHover(obj,src,text,style) {
  111.   if (ns4) {
  112.     var text = '<nobr><a href="' + src + '" class="' + style + '">' + text + '</a></nobr>'
  113.     obj.document.open();
  114.     obj.document.write(text);
  115.     obj.document.close();
  116.   }
  117. }
  118. onload = init;