【发布时间】:2018-01-06 15:00:23
【问题描述】:
所以我花了很多时间编写这段代码,它可以工作,但我无法修复的唯一错误是让它反复循环。任何人都可以就问题及其解决方案提出一些建议吗?
<h1 id="heading">Hello</h1>
var offsetLeft = 0;
var offsetTop = 0;
var offsetLeftReverse = 200;
var offsetTopReverse = 200;
var moveHeading = function () {
$("#heading").offset({ left: offsetLeft, top: offsetTop});
if(offsetLeft < 200){
offsetLeft++;
} else if (offsetTop < 200){
offsetTop++;
}
};
var moveHeadingReverse = function () {
$("#heading").offset({ left: offsetLeftReverse, top: offsetTopReverse});
if(offsetLeftReverse > 0 ){
offsetLeftReverse--;
} else if (offsetTopReverse > 0){
offsetTopReverse--;
}
};
var engine = function () {
if ( (offsetTop === 0 && offsetLeft <= 200) || (offsetTop < 200 && offsetLeft === 200) ){
moveHeading();
}
else if ( (offsetTopReverse === 200 && offsetLeftReverse <= 200) || (offsetTopReverse <= 200 && offsetLeftReverse === 0) &&
( offsetTopReverse != 0 || offsetLeftReverse != 0 ) ){
moveHeadingReverse();
console.log("reverse");
console.log(offsetTopReverse,offsetLeftReverse);
}
}
var start = setInterval(engine, 5);
【问题讨论】:
-
你能补充一点你的代码应该做什么的细节吗?可以通过代码来理解,但我认为没有人愿意这样做。
-
它应该向右移动 200 像素,向底部移动 200 像素,向左移动 200 像素,向开始的位置移动 200 像素。问题是我不能让它自动移动,它只会做一个圆圈。
-
我认为在这种情况下,当反向移动完成且无事可做时,您必须在
moveHeadingReverse内部的某个地方拨打moveHeading的电话 -
你有没有尝试过?
-
是的,我尝试了很多东西,最方便的是添加一个 else 语句 offsetLeft = 0; var offsetTop = 0; var offsetLeftReverse = 200; var offsetTopReverse = 200;
标签: javascript jquery function if-statement offset