【问题标题】:Javascript moving thingsJavascript 移动事物
【发布时间】:2012-03-12 23:13:48
【问题描述】:

我正在尝试将图像从右向左移动

但是代码只能从左到右运行

这是一个从左到右的例子

 <script language="javascript">
 var x = 310; //Starting Location - left

 var dest_x = 300;  //Ending Location - left

 var interval = 2; //Move 10px every initialization

 function moveImage() {
//Keep on moving the image till the target is achieved
if(x<dest_x) x = x + interval; 


//Move the image to the new location

document.getElementById("ufo").style.left = x+'px';

if ((x+interval < dest_x)) {
    //Keep on calling this function every 100 microsecond 
    //  till the target location is reached
    window.setTimeout('moveImage()',10);
}

有人知道这个问题吗?真的很感激!

【问题讨论】:

  • 尝试将任一区间设为负数,或将其从 x 中移除而不添加。你目前从 310 开始,每个循环添加 2 个,所以你不会降到 300

标签: javascript image move


【解决方案1】:

如果您从右向左移动,我想问题源于使用document.getElementById("ufo").style.left,您是否尝试过将此值更改为document.getElementById("ufo").style.right

【讨论】:

    【解决方案2】:

    left 属性定义到左侧的距离。您正在增加 left 值,所以这自然会导致它从左向右移动。您可以通过减小属性使其从右向左移动。基本上,只需将间隔设置为-2。另外,你应该将 if (x dest_y),否则它永远不会运行。

    浏览它: 您从左侧 310 像素处开始,并将每次迭代的行进距离设置为 +2。 你检查312是否小于300(你的目的地);它不是。 如果是,那么您将 x 值更改为 310 + 2 = 312;您现在距离左侧 312 像素。 然后在重复循环之前检查 x + 距离 (312) 是否小于 300。

    【讨论】:

    • 我试过你说的但还是不动 :( var x = 310; //起始位置 - top var dest_x = 300; //结束位置 - top var interval = -2; //每次初始化移动2px function moveMenu() { //继续移动图像直到达到目标 if(x>dest_y) x = x + interval; //将图像移动到新位置 document.getElementById("menu ").style.top = x+'px'; if ((x+interval
    • 对不起,我回复的有点晚了,我做了这个回复后不得不去做一些事情。您需要将第二部分中的 if ((x+interval dest_x)
    猜你喜欢
    • 2019-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-09
    • 2020-09-10
    • 1970-01-01
    • 2015-01-23
    相关资源
    最近更新 更多