<style>
div {
position: absolute;
width: 100px;
height: 100px;
background-color: skyblue;
}
</style>
</head>
<body>
<div></div>
<script>
function animate(obj, target) {
var timer = setInterval(function () {
if (obj.offsetLeft >= 300) {//注意:这里不能用obj.style.left,因为他返回的是字符串
clearInterval(timer);
console.log(obj.style.left);
}
obj.style.left = obj.offsetLeft + 1 + 'px';
console.log(obj.style.left);//(1,2,3,4,5,6,7...301)
}, 20)
}
var div = document.querySelector('div');
animate(div, 300);
</script>
</body>
练习这个案例时,试图把obj.offsetLeft换成obj.style.left,结果运行后div没反应。。
原因:obj.offsetLeft返回的是数值而obj.style.left返回的是带有单位的字符串!!
offset和style区别总结: