当前位置: 代码迷 >> ASP.NET >> 能定位panel吗?该怎么处理
  详细解决方案

能定位panel吗?该怎么处理

热度:8979   发布时间:2013-02-25 00:00:00.0
能定位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>