zoukankan      html  css  js  c++  java
  • [导入]从MM里找出来的一个菜单生成的代码。

    MM可以自动生成菜单,但效果不是很好,特别是我想动态的修改菜单的时候,不是很好。看了一下,这是它的主要内容:

     window.mm_menu_0427080228_0 = new Menu("root",88,18,"",12,"#000000","#FFFFFF","#FF9900","#000084","left","middle",3,0,500,-5,7,true,true,true,0,false,false);
     mm_menu_0427080228_0.addMenuItem("新建项目");
     mm_menu_0427080228_0.addMenuItem("新建项目");
     mm_menu_0427080228_0.addMenuItem("新建项目");
     mm_menu_0427080228_0.hideOnMouseOut=true;
     mm_menu_0427080228_0.bgColor='#666666';
     mm_menu_0427080228_0.menuBorder=1;
     mm_menu_0427080228_0.menuLiteBgColor='#FFFFFF';
     mm_menu_0427080228_0.menuBorderBgColor='#999999';

    于是可以这样的在ASP或者其它文件生成程序里动态的生成脚本:

     temp_string = "window.mm_menu_2_1"&" = new Menu('root',80,20,'',12,'#187094','#187094','#F7F2E1','#D5EAF4','left','middle',3,0,300,-5,0,true,true,true,0,false,false);"&chr(13)
     temp_string = temp_string&"mm_menu_2_1.hideOnMouseOut=true;"&chr(13)
     temp_string = temp_string&"mm_menu_2_1.bgColor='#666666';"&chr(13)
     temp_string = temp_string&"mm_menu_2_1.menuBorder=1;"&chr(13)
     temp_string = temp_string&"mm_menu_2_1.menuLiteBgColor='#FFFFFF';"&chr(13)
     temp_string = temp_string&"mm_menu_2_1.menuBorderBgColor='#999999';"&chr(13)
     SQL = "select * from t_pageSort where s_parID=-1 and s_ver='cn' order by s_sort"
     menuRs.open SQL,conn,1,1
     do until menuRs.eof
      sub_menu = ""
      sub_menu = """<a href='m_subPage.asp?m_title_s="&menuRs("s_title")&"&m_type=ListSubCatalog&m_id="&menuRs("s_id")&"'>"&menuRs("s_title")&"</a>"""
      temp_string = temp_string&"mm_menu_2_1.addMenuItem("&sub_menu&");"&chr(13)
      menuRs.moveNext
     loop
     menuRs.close  
     Response.Write(temp_string)
     Response.Write("//添加完一组菜单,主栏目标题:"&chr(13))

     Response.Write(temp_string)
     Response.Write("//添加完一组菜单,主栏目标题:"&chr(13))
     '在这里可以添加其它的菜单
     set menuRs = nothing
     set menuRs = nothing
     Response.Write("mm_menu_0.writeMenus();"&chr(13))
     Response.Write("}"&chr(13))
     CloseConn

    这是个好方法,不仅可以从数据库里生成动态的菜单,而且配置也很方便。

    <a href="m_subPage.asp"  class="link"          id="menu_06" onMouseOver="MM_showMenu(window.mm_menu_2_1,-5,20,null,'menu_06')" onMouseOut="MM_startTimeout();">基层财政</a>

    我找了一下里面的核心代码,发现这两个函数很有用,就独立的找出来了,而且可以在其它的应用程序里引用:

     function moveXbySlicePos (x, img) {
      if (!document.layers) {
       var onWindows = navigator.platform ? navigator.platform == "Win32" : false;
       var macIE45 = document.all && !onWindows && getExplorerVersion() == 4.5;
       var par = img;
       var lastOffset = 0;
       while(par){
        if( par.leftMargin && ! onWindows ) x += parseInt(par.leftMargin);
        if( (par.offsetLeft != lastOffset) && par.offsetLeft ) x += parseInt(par.offsetLeft);
        if( par.offsetLeft != 0 ) lastOffset = par.offsetLeft;
        par = macIE45 ? par.parentElement : par.offsetParent;
       }
      } else if (img.x) x += img.x;
      return x;
     }
     
     function moveYbySlicePos (y, img) {
      if(!document.layers) {
       var onWindows = navigator.platform ? navigator.platform == "Win32" : false;
       var macIE45 = document.all && !onWindows && getExplorerVersion() == 4.5;
       var par = img;
       var lastOffset = 0;
       while(par){
        if( par.topMargin && !onWindows ) y += parseInt(par.topMargin);
        if( (par.offsetTop != lastOffset) && par.offsetTop ) y += parseInt(par.offsetTop);
        if( par.offsetTop != 0 ) lastOffset = par.offsetTop;
        par = macIE45 ? par.parentElement : par.offsetParent;
       }  
      } else if (img.y >= 0) y += img.y;
      return y;
     }
    利用这两个函数可以用ID找到对象在屏幕上的绝对位置,这样可以很方便的在其它的地方来使用它。

    还有这个函数,返回引用的对象。

    function FIND(item) {
     if( window.mmIsOpera ) return(document.getElementById(item));
     if (document.all) return(document.all[item]);
     if (document.getElementById) return(document.getElementById(item));
     return(false);
    }

    而且引用也很有意思:

    var obj = FIND(imgname) || document.images[imgname] || document.links[imgname] || document.anchors[imgname];

    自己做一个特效菜单,可以淡出淡入,呵呵,小有点意思。


    文章来源:http://computer.mblogger.cn/wucountry/posts/44334.aspx
    ================================
      /\_/\                        
     (=^o^=)  Wu.Country@侠缘      
     (~)@(~)  一辈子,用心做一件事!
    --------------------------------
      学而不思则罔,思而不学则怠!  
    ================================
  • 相关阅读:
    QWidget在QPopupMenu显示
    QTable中header高度
    在OpenSSL中添加自定义加密算法
    LibXML2不支持中文补遗
    基于arm+uClinux的嵌入式系统的开发
    关于嵌入式系统的启动
    在Qt/Embedded 2.3.8中添加MX21Ads键盘处理
    QT/Embedded 2.3.8 MX21ADS板移植
    Windows/Linux/Solaris 软中断处理机制
    RMI原理及实现
  • 原文地址:https://www.cnblogs.com/WuCountry/p/305726.html
Copyright © 2011-2022 走看看