<html>
<head>
<title>弹出层定位</title>
<style type="text/css">
body{ margin:0px; padding:0px; text-align:center;}
#cu th{ width:120px; height:60px; background:#99CC99; font-size:13px;}
#cu td{ width:120px; height:60px; background:#FFFFFF; cursor:pointer; font-size:12px;}
#CustomerFram{position:absolute;border:1px #999999 solid; background:#00FFFF; display:none; padding:10px;}
#CustomerFram td{ background:#FFFFFF; font-size:12px; padding:5px; text-align:center}
#CustomerFram a{ cursor:pointer; color:#0033CC}
.Fram{ width:300px; height:120px; overflow:auto;}
</style>
<script type="text/javascript">
var bakObj; //定义一个空的全局变量;
function chooseCustomer(obj) {
bakObj = obj; //把此方法传进来的参数即当前所点对象使bakObj初始化;
var CustomerFram = document.getElementById("CustomerFram"); //获取弹出框对象
var hidivmt = obj.offsetTop; //获取当前对象居body顶部的高度
var hidivml = obj.offsetLeft; //获取当前对象居body左部的宽度
var objWidth = obj.offsetWidth; //获取当前对象的实际宽度
var objHeight = obj.offsetHeight; //获取当前对象的实际高度
CustomerFram.style.display = "block"; var aBox = obj; //需要获得位置的对象
do {
aBox = aBox.offsetParent; // 父容器
var parentName = aBox.tagName;
hidivml += aBox.offsetLeft;// 距离
hidivmt += aBox.offsetTop;
}
while (aBox.tagName != "BODY");
var cusHeight = CustomerFram.offsetHeight; //获取弹出框的实际高度
var cusWidth = CustomerFram.offsetWidth; //获取弹出框的实宽度
var bodyHeight = document.body.clientHeight;
var bodyWidth = document.body.clientWidth; CustomerFram.style.left = hidivml - 1;
CustomerFram.style.top = hidivmt + objHeight;
if (hidivml + cusWidth >= bodyWidth) {
CustomerFram.style.left = hidivml + objWidth - cusWidth + 1;
}
if (hidivmt + cusHeight >= bodyHeight - objHeight) {
CustomerFram.style.top = hidivmt - cusHeight;
}
} function setValue(obj) {
//alert(obj);
bakObj.innerHTML = obj;
document.getElementById("CustomerFram").style.display = 'none';
}
</script>
</head>
<body>
<div style="width:800px; height:auto; border:1px solid blue; margin-left:auto; margin-right:auto;">
<table border="0" cellpadding="0" cellspacing="1" bgcolor="#0066CC" id="cu">
<tr>
<td align="center" valign="middle" onClick="chooseCustomer(this)"> </td>
<td align="center" valign="middle" onClick="chooseCustomer(this)"> </td>
<td align="center" valign="middle" onClick="chooseCustomer(this)"> </td>
<td align="center" valign="middle" onClick="chooseCustomer(this)"> </td>
<td align="center" valign="middle" onClick="chooseCustomer(this)"> </td>
<td align="center" valign="middle" onClick="chooseCustomer(this)"> </td>
<td align="center" valign="middle" onClick="chooseCustomer(this)"> </td>
</tr>
</table>
<div id="CustomerFram">
<div class="Fram">
This is a test!!
</div>
</div>
</div>
</body>
</html>
// 这个弹出层的位置不能随浏览器的窗口大小而改变,一旦在出现弹出层后最大化或者调整浏览器大小,弹出层的位置就会改变。
各位能帮我看下该如何解决吗!谢谢!!
就这样,改变当前查看大小即调用方法改变div大小。不错