ASP

本类阅读TOP10

·asp常用数据库连接方法和技巧
·无组件生成BMP验证码
·一些常用的辅助代码 (网络收藏)
·JavaScript实现的数据表格:冻结列、调整列宽和客户端排序
·VisualStudio.NET_2003及其 MSDN 下载地址
·ASP模拟MVC模式编程
·图片以二进制流输出到网页
·MD5加密算法 ASP版
·ASP.NET编程中的十大技巧
·改进 ASP 的字符串处理性能

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
用javascript来获取用户客户端分辨率

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

我做了一个网页导航下拉菜单,用firework可以很快生成,只用把代码拷贝到页面中就可以了,可是用户端不同分辨率造成了下拉菜单位置的移动,如何在800和1024的菜单下保持正确的显示,修改js文件中的一个函数就可以,y只不用变化,只用更改x坐标变量即可

function MM_showMenu(menu, x, y, child, imgname) {
 if (!window.mmWroteMenu) return;
 MM_clearTimeout();
 if (menu) {
  var obj = FIND(imgname) || document.images[imgname] || document.links[imgname] || document.anchors[imgname];
  if (window.screen.width==800 && window.screen.height==600)//用来800*600分辨率设置
  {
   x = moveXbySlicePos (x-100, obj);
   y = moveYbySlicePos (y, obj);
  }
  if (window.screen.width==1024 && window.screen.height==768)// 1024分辨率设置
  {
   x = moveXbySlicePos (x, obj);
   y = moveYbySlicePos (y, obj);
  }
 }
 if (document.layers) {
  if (menu) {
   var l = menu.menuLayer || menu;
   l.top = l.left = 1;
   hideActiveMenus();
   if (this.visibility) l = this;
   window.ActiveMenu = l;
  } else {
   var l = child;
  }
  if (!l) return;
  for (var i=0; i<l.layers.length; i++) {      
   if (!l.layers[i].isHilite) l.layers[i].visibility = "inherit";
   if (l.layers[i].document.layers.length > 0) MM_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 != "relative") 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.Menu.menuBgOpaque ) l.parentLayer.document.bgColor = l.parentLayer.menuContainerBgColor;
   }
  }
  l.visibility = "inherit";
  if (l.Menu) l.Menu.container.visibility = "inherit";
 } else if (FIND("menuItem0")) {
  var l = menu.menuLayer || menu; 
  hideActiveMenus();
  if (typeof(l) == "string") l = FIND(l);
  window.ActiveMenu = l;
  var s = l.style;
  s.visibility = "inherit";
  if (x != "relative") {
   s.pixelLeft = x || (window.pageX + document.body.scrollLeft) || 0;
   s.left = s.pixelLeft + 'px';
  }
  if (y != "relative") {
   s.pixelTop = y || (window.pageY + document.body.scrollTop) || 0;
   s.top = s.pixelTop + 'px';
  }
  l.Menu.xOffset = document.body.scrollLeft;
  l.Menu.yOffset = document.body.scrollTop;
 }
 if (menu) window.activeMenus[window.activeMenus.length] = l;
 MM_clearTimeout();
}




相关文章

相关软件