2014-03-31 68 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);