我试着把盒子从左移到右,然后再移回来,但它在几个周期后崩溃了
I try to move box from left to right and back again, but it crashes after a few cycles
我正在学习javascript,我的一个练习是将盒子从左移到右。刚开始的几个周期很好,但后来就乱了,我不知道是什么原因造成的。
function preparePage(){
var box = document.getElementById("box");
var leftPosition = 0;
box.style.position = "absolute";
function animateRight(){
leftPosition += 1;
if (leftPosition<=300){
box.style.left = leftPosition+"px";
} else {
console.log("leftPosition = ",leftPosition);
clearInterval(intervalRight);
intervalLeft = setInterval(animateLeft, 20);
}
}
function animateLeft(){
if (leftPosition>=0){
leftPosition -=1;
box.style.left = leftPosition+"px";
} else {
console.log("leftPosition =", leftPosition);
clearInterval(intervalLeft);
setInterval(animateRight,20);
}
}
intervalRight = setInterval(animateRight,20);
}
window.onload = function(){
preparePage();
}
您忘记将用于间隔移动的句柄放入变量中。当你第二次开始向左移动时,它不会阻止当前间隔向右移动,它会尝试再次停止第一个间隔。
改变:
setInterval(animateRight,20);
为:
intervalRight = setInterval(animateRight,20);
相关文章:
- location.reload(true)崩溃浏览器选项卡
- 组件生命周期问题/无法处理未定义的问题
- 引导程序崩溃一次只能看到一个
- Grunt构建导致Angular应用程序在dist上崩溃
- jquery扩展了崩溃效率
- 为什么这个For循环会使浏览器实验室崩溃
- 渲染方法与生命周期方法中的React计算
- 引导崩溃具有快照抖动
- 引导程序导航栏崩溃问题
- 在jQuery周期内触发一个谷歌时髦的脚本
- jQuery Mobile点击数据崩溃
- 脸书's的inApp浏览器在尝试上传表单中的照片时崩溃
- 同一事物的两个函数,一个崩溃,另一个不崩溃,为什么
- twitter引导崩溃在第一次点击后停止工作
- ImageMapster可以动态显示和隐藏图像选择崩溃
- JavaScript相当于Smalltalk开发周期
- Javascript-食物总数数组崩溃
- 报价左轮手枪崩溃网站
- 注册后是否可以定义HTML5自定义元素中的生命周期回调
- 我试着把盒子从左移到右,然后再移回来,但它在几个周期后崩溃了