日期:2014-05-18  浏览次数:20389 次

能定位panel吗?
我想在运行的时候点按钮,显示一个panel,这个panel显示在鼠标的旁边,怎么实现

------解决方案--------------------
用javascript去写啊


一般情况要取得对象的离浏览器top和left只需要用objectID.offsetLeft和objectID.offsetTop就可以了
但如果该对象嵌套在其它容器(如div,table)里的话就不能直接这样取了,而要一个一个从里到外取,使用offsetParent循环取出直到nodeName不为body,最后再全都累加起来才是我们要的数据,例如有如下html代码:
<table>
<tr>
<td><input id="aa" type="text" size="40"><a href='#' onclick="ShowSelectTable('aa')">选择</a></td>
</tr>
</table>
如果要得到aa的top和left就要取得
aa.offsetLeft
aa.offsetTop
td.offsetLeft
td.offsetTop
table.offsetLeft
table.offsetTop

------解决方案--------------------
放在div里,然后用js控制div的位置
------解决方案--------------------
panel生成的就是div,控制这个div就行了。
------解决方案--------------------
楼上有道理
------解决方案--------------------
HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input type="button" value="show panel" onclick="showPanel(event)" />
        <asp:Panel ID="Panel1" runat="server" BorderColor="#FFE0C0" BorderStyle="Dotted"
            Height="50px" Width="125px" style="visibility:hidden;position:absolute">
            panel here</asp:Panel>
    
    </div>
    </form>
    <script type="text/javascript">
    var isIe=navigator.appName.indexOf("Microsoft")!=-1?true:false;
    function showPanel(e){
        var oDiv=document.getElementById("<%=Panel1.ClientID %>");
        oDiv.style.top=isIe?event.clientY+"px":e.pageY+"px";
        var iLeft=isIe?event.clientX:e.pageX;
        iLeft+=12;
        oDiv.style.left=iLeft+"px";
        oDiv.style.visibility="visible";
    }
    </script>
</body>
</html>