这个问题是我今天看图片轮播源码想到的,以前一直有一点疑问,在这里测试一下。
在js中,有很多情况需要对元素重新定位,用一个obj.style.left||obj.offsetLeft 来取得该元素的left。
offsetLeft返回一个Number型,如100;style.left返回一个String型,如100px;而offsetLeft不可以被从新写,所以大多是用offsetLeft来得到数字再+px写回style.left。
但是,好像只有你在标签内定义left时,style.left才会有返回,否则都是空字符串。
如果设定了父元素,offsetLeft和style.left得到的应该是一个。
可以用如下代码试试,自己编编看。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script>
window.onload=function(){
var divs=document.getElementById("test");
var _left=parseInt((divs.style.left),10);
alert(_left);}
</script>
<style>
#test{
position:relative;
background-color: #666666;
height:200px;
width:200px;
}
</style>
</head>
<body>
<div id="test" style="left:200px;"></div>
</body>
</html>