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";

画像が動かない。ところで、それは実際のコードではありません。コードの最後の行はそれを動かしていないものであり、間に他のコードがあります。どうしたの??

4

1 に答える 1

2

このコード行は、問題がある場所です:

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

array[0].style.leftのようなものを返してい100pxます。したがって、それに追加10すると になり100px10、次に追加pxすると になります100px10px。あなたがする必要があるのはparseInt、 to を変換する100pxために使用し100、次に10be110を追加pxし、それに追加すると正しい が得られます110px

array[0].style.left = parseInt(array[0].style.left) + 10 + "px";
于 2013-03-17T05:54:28.510 に答える