2013-03-17 2 views
2
var img = new Image(); 
img.className = "block"; 
img.src = "http://db.tt/xCGgJN48"; 
img.style.left = x + "px"; 
img.style.top = y + "px"; 
var array = []; 
array.push(img); 
document.getElementById("mydiv").appendChild(array[0]); 
//imagine some delay here 
array[0].style.left = (array[0].style.left + 10) + "px"; 

i can not получить изображение для перемещения. btw, который не является фактическим кодом, последняя строка кода - это то, что не перемещает его, и между ними есть другие бит кода. что с этим не так??javascript - невозможно изменить позицию объекта

+0

Это не имеет никакого отношения к массивам. –

+0

ну нет, но я не знал, что происходило сначала. –

ответ

2

Эта строка кода, где вопрос:

(array[0].style.left + 10) + "px"; 

array[0].style.left возвращается что-то вроде 100px. Итак, добавив 10 к этому будет 100px10, а затем добавим px к 100px10px. Что вам нужно сделать, это использовать parseInt для скрытия 100px до 100, а затем добавление 10 будет 110 и добавление px к этому даст вам правильный 110px.

array[0].style.left = parseInt(array[0].style.left) + 10 + "px"; 
+0

Да, в какой-то момент мне было интересно, почему мы должны были добавить все эти «px» ко всему, и изменилось бы это было бы странно. Я добавил parseInt, но я получаю «--- Отсутствует параметр radix». –

+0

'parseInt (array [0] .style.left, 10)'. Радикс обычно необязателен ... странно, что вы получаете эту ошибку. Радиус - это номерная система, которую вы используете. Например, '10' является десятичным, а' 2' является двоичным. – MattDiamant

+0

Я не уверен, что вы подразумеваете под этим, и что такое radix. im довольно новичок. –

Смежные вопросы