检查div的边距,而不是每隔一秒移动一次

时间:2016-06-11 15:23:45

标签: javascript jquery html css

div应该移动9次而且应该停止。问题是它只移动一次。有人有解决这个问题的想法吗?感谢



$(document).ready(function(){
		var id=1;
		setInterval(move,1000);
		function move(){
			if($(".block").css("margin-left") < "100px"){
				$(".block").animate({marginLeft: "+=10px"});

			}

		}
	});
&#13;
.block{
	padding: 15px;
    background-color: orange;
    float: left;
    box-shadow: 0px 2px 2px #b1b1b1;
    display: block;
    margin-left: 0px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="block"></block>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

"Npx" < "100px"无效。 这些是字符串!

您应该使用parseInt()将某些margin-left字符串转换为数字,并且可以使用< 100进行比较。
此外,您不需要setInterval(),请使用.animate()回调来回忆您的move功能

&#13;
&#13;
$(document).ready(function(){
      
  (function move(){
    if( parseInt($(".block").css("margin-left"), 10) < 100) {
      $(".block").delay(1000).animate({marginLeft: "+=10px"}, move);
    }
  }());
  
});
&#13;
.block{
  padding: 15px;
  background-color: orange;
  float: left;
  box-shadow: 0px 2px 2px #b1b1b1;
  margin-left: 0px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="block"></block>
&#13;
&#13;
&#13;

P.S:它会移动10次:)