IE8+jQuery.css('top')函数有问题。
1) 我有一个DIV,高100px,宽600px。我在第一个DIV中有另一个DIV,样式为"top:50%",所以它应该放在top=50px中。
2) 所有浏览器都能正确显示它。但是,稍后,我需要使用jQuery来查找元素的位置,IE8:出现了问题
$('#txt').css('top')返回的不是50px而是300px!!!!!这是不正确的。我还注意到它总是返回父DIV的值0.5*WIDTH!!这让我疯了!怎么可能呢?
这是代码示例:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>demo</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
function onLoadTest(){
alert("document.getElementById('txt').style.top="+document.getElementById('txt').style.top+"n$(#txt).css('top')="+$('#txt').css('top'));
}
</script>
</head>
<body onload="onLoadTest()" style="padding: 0px; margin: 0px; width:100%; height:100%">
<div id="box" style="width:600px; height:100px; position:absolute; padding:0px; margin:0px; border: solid 1px">
<div id="txt" style="top:50%; position:relative; padding:0px; margin:0px;border: solid 1px">
im in the position top=50% (which is 50px), plz compare to alert box data
</div>
</div>
</body>
</html>
这是我的小提琴。请尝试使用offset()。IE有时会对absolute感到奇怪。使用偏移量是在你父母身上的寄宿生会让你51岁,所以我把寄宿生从父母上取下来