弹出菜单层二
在网找资料的时候发现了很有用的js代码。它实现了弹出菜单的功能。
一、下面是js代码:
// JScript 文件

 Code
Code1
 // JScript 文件
// JScript 文件2
 var menuTimer =null;
var menuTimer =null;3

 function showmenu(obj1,obj2,state,location)
function showmenu(obj1,obj2,state,location) {
{ 4
 var btn=document.getElementById(obj1);
    var btn=document.getElementById(obj1);5
 var obj=document.getElementById(obj2);
    var obj=document.getElementById(obj2);6
 var h=btn.offsetHeight;
    var h=btn.offsetHeight;7
 var w=btn.offsetWidth;
    var w=btn.offsetWidth;8
 var x=btn.offsetLeft;
    var x=btn.offsetLeft;9
 var y=btn.offsetTop;
    var y=btn.offsetTop;10
 
    11

 obj.onmouseover =function()
    obj.onmouseover =function() {
{12
 showmenu(obj1,obj2,'show',location);
        showmenu(obj1,obj2,'show',location);13
 }
    }14

 obj.onmouseout =function()
    obj.onmouseout =function() {
{15
 showmenu(obj1,obj2,'hide',location);
        showmenu(obj1,obj2,'hide',location);16
 }
    }17
 
    18

 while(btn=btn.offsetParent)
    while(btn=btn.offsetParent) {y+=btn.offsetTop;x+=btn.offsetLeft;}
{y+=btn.offsetTop;x+=btn.offsetLeft;}19
 
    20
 var hh=obj.offsetHeight;
    var hh=obj.offsetHeight;21
 var ww=obj.offsetWidth;
    var ww=obj.offsetWidth;22
 var xx=obj.offsetLeft;//style.left;
    var xx=obj.offsetLeft;//style.left;23
 var yy=obj.offsetTop;//style.top;
    var yy=obj.offsetTop;//style.top;24
 var obj2state=state.toLowerCase();
    var obj2state=state.toLowerCase();25
 var obj2location=location.toLowerCase();
    var obj2location=location.toLowerCase();26
 
    27
 var showx,showy;
    var showx,showy;28

29

 if(obj2location=="left" || obj2location=="l" || obj2location=="top" || obj2location=="t" || obj2location=="u" || obj2location=="b" || obj2location=="r" || obj2location=="up" || obj2location=="right" || obj2location=="bottom")
    if(obj2location=="left" || obj2location=="l" || obj2location=="top" || obj2location=="t" || obj2location=="u" || obj2location=="b" || obj2location=="r" || obj2location=="up" || obj2location=="right" || obj2location=="bottom") {
{30

 if(obj2location=="left" || obj2location=="l")
        if(obj2location=="left" || obj2location=="l") {showx=x-ww;showy=y;}
{showx=x-ww;showy=y;}31

 if(obj2location=="top" || obj2location=="t" || obj2location=="u")
        if(obj2location=="top" || obj2location=="t" || obj2location=="u") {showx=x;showy=y-hh;}
{showx=x;showy=y-hh;}32

 if(obj2location=="right" || obj2location=="r")
        if(obj2location=="right" || obj2location=="r") {showx=x+w;showy=y;}
{showx=x+w;showy=y;}33

 if(obj2location=="bottom" || obj2location=="b")
        if(obj2location=="bottom" || obj2location=="b") {showx=x;showy=y+h;}
{showx=x;showy=y+h;}34

 }else
    }else {
{ 35
 showx=xx;showy=yy;
        showx=xx;showy=yy;36
 }
    }37
 obj.style.left=showx+"px";
    obj.style.left=showx+"px";38
 obj.style.top=showy+"px";
    obj.style.top=showy+"px";39

 if(state =="hide")
    if(state =="hide") {
{40
 menuTimer =setTimeout("hiddenmenu('"+ obj2 +"')", 500);
        menuTimer =setTimeout("hiddenmenu('"+ obj2 +"')", 500);41

 }else
    }else {
{42
 clearTimeout(menuTimer);
        clearTimeout(menuTimer);43
 obj.style.visibility ="visible";
        obj.style.visibility ="visible";44
 }
    }45
 }
}46

 function hiddenmenu(psObjId)
function hiddenmenu(psObjId) {
{47
 document.getElementById(psObjId).style.visibility ="hidden";
    document.getElementById(psObjId).style.visibility ="hidden";48
 }
} 49

50

二、应用

 示例前台代码
示例前台代码1
 <head runat="server">
<head runat="server">2
 <title>无标题页</title>
    <title>无标题页</title>3

4
 <script language="javascript" type="text/javascript" src="jscript.js"></script>
    <script language="javascript" type="text/javascript" src="jscript.js"></script>5

6

 <style>
    <style>
7

 #mdiv{
    #mdiv{ }{
}{ 8
 position: absolute;
    position: absolute; 9
 border: 1px solid #92B7E5;
    border: 1px solid #92B7E5; 10
 top: 0px;
    top: 0px; 11
 left: 0px;
    left: 0px; 12
 width: 150px;
    width: 150px; 13
 height: 170px;
    height: 170px; 14
 background-color: #FFFFFF;
    background-color: #FFFFFF; 15
 visibility: hidden;
    visibility: hidden; 16
 padding: 5px;
    padding: 5px; 17
 overflow: hidden;
    overflow: hidden;18
 }
    }19
 </style>
    </style>20
 </head>
</head>21
 <body>
<body>22
 <p>
    <p>23
 调用:</p>
        调用:</p>24
 <p>
    <p>25
 showmenu(thisobjid,menuobjid,state,position)
        showmenu(thisobjid,menuobjid,state,position)26
 </p>
    </p>27
 <p>
    <p>28
 thisobjid =控件本身id</p>
        thisobjid =控件本身id</p>29
 <p>
    <p>30
 menuobjid =弹出菜单层的id</p>
        menuobjid =弹出菜单层的id</p>31
 <p>
    <p>32
 state 有两个值可选,show即显示菜单 hidden即隐藏菜单</p>
        state 有两个值可选,show即显示菜单 hidden即隐藏菜单</p>33
 <p>
    <p>34
 position 有四个值可选,top菜单显示于顶部 bottom菜单显示于底部 left菜单显示于左侧  right菜单显示于右侧</p>
        position 有四个值可选,top菜单显示于顶部 bottom菜单显示于底部 left菜单显示于左侧  right菜单显示于右侧</p>35
 <p>
    <p>36
  </p>
         </p>37
 <p>
    <p>38
 <a href="" id="m1" onmouseover="showmenu('m1','mdiv','show','right')" onmouseout="showmenu('m1','mdiv','hide','right')"
        <a href="" id="m1" onmouseover="showmenu('m1','mdiv','show','right')" onmouseout="showmenu('m1','mdiv','hide','right')"39
 style="cursor: pointer;">鼠标移到这里来看看</a>
            style="cursor: pointer;">鼠标移到这里来看看</a>40
 <div id="mdiv" runat="server">
        <div id="mdiv" runat="server">41
 菜单内容。。。
            菜单内容。。。42
 </div>
        </div>43
 </body>
</body>可以从后台代码控制菜单的内容和样式:

 示例后台代码
示例后台代码1
 protected void Page_Load(object sender, EventArgs e)
    protected void Page_Load(object sender, EventArgs e)2

 
     {
{3
 mdiv.InnerHtml = "<b>菜单内容
        mdiv.InnerHtml = "<b>菜单内容 </b>";
</b>";4
 mdiv.Style.Add("width", "50px");
        mdiv.Style.Add("width", "50px");5
 mdiv.Attributes.Add("style", "background-color:red;");
        mdiv.Attributes.Add("style", "background-color:red;");6
 }
    }小结:时间太紧,先应用,回头在研究搞明白。
    人的一生应该这样度过:当他回首往事的时候,不会因为虚度年华而悔恨,也不会因为碌碌无为而羞愧。
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号