{ x=parseInt(element.style.left);
y=parseInt(element.style.top);
if(x!=x0) {element.style.left=x0+'px';}
if(y>y0) {y--;}
if(y<y0) {y++;}
element.style.top=y+'px';
mm=setTimeout(function(){movestyle(element,x0,y0,interval);},interval);
if(x==10&&y==0) //如果图片达到指定位置(10,0),则执行函数二movestyle_1,这个if语句可以正常执行
{movestyle_1(img_zan,10,400,1);}
}
function movestyle_1(element,x1,y1,interval) // 定义函数二,将这个图片从(x0,y0)移动到指定位置(x1,y1)
{ element.style.left=x1+'px';
if(y>y1) {y--;}
if(y<y1) {y++;}
element.style.top=y+'px';
mm=setTimeout(function(){movestyle_1(element,x1,y1,interval);},interval);
}
movestyle(img_zan,10,0,1); //将所谓的指定位置(x0,y0)设置为(10,0)
if(x==10&&y==0) //如果将前面的if语句放在这里,就不会被执行??不知道为什么???
{movestyle_1(img_zan,10,400,1);}
for(var i=0;i<10;i++)
{movestyle(img_zan,10,0,1);}//我想循环执行movestyle函数十次,为什么也没有反应???
4 个解决方案
#1
楼主要做什么,先把自己的逻辑理清楚。
程序和你想象的不一样,如果js 没报错,就是逻辑问题。
可以单步调试!!!
mm=setTimeout(function(){movestyle(element,x0,y0,interval);},interval);
if(x==10&&y==0) //如果图片达到指定位置(10,0),则执行函数二movestyle_1,这个if语句可以正常执行
{movestyle_1(img_zan,10,400,1);}
当 x==10 &&y==0 时
movestyle_1(img_zan,10,400,1)
会这执行
再执行 movestyle(element,x0,y0,interval);
这是你需要的逻辑?
for(var i=0;i<10;i++)
{movestyle(img_zan,10,0,1);}
只要js 没错误,程序肯定会执行10次!
你可以用 console.log 或者单步调试来验证
程序和你想象的不一样,如果js 没报错,就是逻辑问题。
可以单步调试!!!
mm=setTimeout(function(){movestyle(element,x0,y0,interval);},interval);
if(x==10&&y==0) //如果图片达到指定位置(10,0),则执行函数二movestyle_1,这个if语句可以正常执行
{movestyle_1(img_zan,10,400,1);}
当 x==10 &&y==0 时
movestyle_1(img_zan,10,400,1)
会这执行
再执行 movestyle(element,x0,y0,interval);
这是你需要的逻辑?
for(var i=0;i<10;i++)
{movestyle(img_zan,10,0,1);}
只要js 没错误,程序肯定会执行10次!
你可以用 console.log 或者单步调试来验证
#2
movestyle(img_zan,10,0,1);
后面好像多了个分号。。。。
后面好像多了个分号。。。。
#3
看错了,,,,,
#4
其实我是想先让图片从当前位置(x,y)移动到指定位置(x0,y0),
如果 图片达到指定位置(x0,y0),则执行函数二movestyle_1,从而将这个图片从(x0,y0)移动到指定位置(x1,y1),问题是我将这个if语句到底放在外面好,还是嵌套在函数一里面,逻辑上两个应该都可以,但是只有嵌套在函数一餐能正常执行者连个连贯的动作,这才我不理解的地方??
#1
楼主要做什么,先把自己的逻辑理清楚。
程序和你想象的不一样,如果js 没报错,就是逻辑问题。
可以单步调试!!!
mm=setTimeout(function(){movestyle(element,x0,y0,interval);},interval);
if(x==10&&y==0) //如果图片达到指定位置(10,0),则执行函数二movestyle_1,这个if语句可以正常执行
{movestyle_1(img_zan,10,400,1);}
当 x==10 &&y==0 时
movestyle_1(img_zan,10,400,1)
会这执行
再执行 movestyle(element,x0,y0,interval);
这是你需要的逻辑?
for(var i=0;i<10;i++)
{movestyle(img_zan,10,0,1);}
只要js 没错误,程序肯定会执行10次!
你可以用 console.log 或者单步调试来验证
程序和你想象的不一样,如果js 没报错,就是逻辑问题。
可以单步调试!!!
mm=setTimeout(function(){movestyle(element,x0,y0,interval);},interval);
if(x==10&&y==0) //如果图片达到指定位置(10,0),则执行函数二movestyle_1,这个if语句可以正常执行
{movestyle_1(img_zan,10,400,1);}
当 x==10 &&y==0 时
movestyle_1(img_zan,10,400,1)
会这执行
再执行 movestyle(element,x0,y0,interval);
这是你需要的逻辑?
for(var i=0;i<10;i++)
{movestyle(img_zan,10,0,1);}
只要js 没错误,程序肯定会执行10次!
你可以用 console.log 或者单步调试来验证
#2
movestyle(img_zan,10,0,1);
后面好像多了个分号。。。。
后面好像多了个分号。。。。
#3
看错了,,,,,
#4
其实我是想先让图片从当前位置(x,y)移动到指定位置(x0,y0),
如果 图片达到指定位置(x0,y0),则执行函数二movestyle_1,从而将这个图片从(x0,y0)移动到指定位置(x1,y1),问题是我将这个if语句到底放在外面好,还是嵌套在函数一里面,逻辑上两个应该都可以,但是只有嵌套在函数一餐能正常执行者连个连贯的动作,这才我不理解的地方??