2014-03-31 70 views
0

我在横幅div中创建了一个僵尸img,但是我无法让img在创建后移动到左侧。Javascript:在createElement之后移动新元素

createZombie功能是在定时器上:

createZombieTimer = window.setInterval(createZombie, 1000); 

即在一个init(),该负载与所述主体。

function createZombie(){ 
    var imgElem = document.createElement("img"); 
    imgElem.src = "img/zombie_walk_right.gif"; 
    var newZom = document.getElementById('banner').appendChild(imgElem); 
    newZom.style.height = "40px"; 
    newZom.style.width = "auto"; 
    newZom.style.display = "block"; 
newZom.style.marginLeft = "50px"; 
    var zomPos = parseInt(newZom.style.marginLeft); 

    if (zomPos > 0) { 
     newZom.style.marginLeft = (zomPos + 50) + "px"; 
    } 
} 
+5

你只有一次设置保证金的元素。你期望发生什么? – Nit

+0

我再次设置了边距。这是你的意思吗?我还没有得到我创建的IMG移动.. – wclark

+0

您在'newZom.style.marginLeft =“50px”;'中设置marginLeft,然后在'newZom.style.marginLeft =(zomPos + 50 )+“px”;'根据条件。但是,这种重写对于用户来说并不明显,因为项目不在中间呈现。 – weeknie

回答

0

既然从评论现在很清楚你想要做什么,我会在这里发布它作为答案。

你也可以用普通的javascript来做到这一点。你需要做的是使用setInterval()。这将每秒执行一个函数,您可以在其中更新元素的位置。

例子:

// Function to move the zombie by 50 pixels 
function moveZombie() 
{ 
    // Select the zombie element (will need additional logic to select all of them, just an example) 
    zomElement = document.getElementById('zombie1'); 
    zomPos = parseInt(zomElement.style.marginLeft); 
    zomElement.style.marginLeft = (zomPos + 50) + 'px'; 
} 

// Call this function every second 
setInterval(moveZombie(), 1000);