oDiv.offsetLeft替换成oDiv.style.left 遇到bug

来源:2-2 JS透明度动画

I百川

2015-04-22 13:52

var timer=null;
	function stateMove(iTarget){
		var oDiv=document.getElementById('div1');
		clearInterval(timer);
		if(oDiv.offsetLeft > iTarget){
			speed=-10;
		}else{
			speed=10
		};
		timer=setInterval(function(){
			if(oDiv.offsetLeft==iTarget){
				clearInterval(timer);
			}else{
				oDiv.style.left=oDiv.offsetLeft+speed+'px';
			};	
		},30);
	}

这段代码为什么使用 if(oDiv.offsetLeft > iTarget){    而不是使用if(oDiv.style.left> iTarget){  和目标比较 。

我试过了第二种方法  出现了一点小bug就是div在结束的时候 一直在跳动,这是为什么?  

写回答 关注

3回答

  • 小小儿
    2017-01-04 11:27:39

    style不能用来做判断

  • I百川
    2015-04-22 14:46:09

    谢谢!

  • 西施先森
    2015-04-22 14:00:23

    http://www.cnblogs.com/woshilee/articles/1951457.html

    I百川

    谢谢!!

    2015-04-22 14:46:29

    共 1 条回复 >

JS动画效果

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

113925 学习 · 1443 问题

查看课程

相似问题