通过Id移动图像的JavaScript简单错误

时间:2014-01-11 21:13:45

标签: javascript

在下面的代码中,我创建了一个id为“devildead”的新图像,在我尝试使用其id移动此图像后,出现此错误:

  

未捕获的TypeError:无法读取null的属性“top”。

我应该改变什么来使其有效?

o = document.createElement('img');
o.src = "img/birddead.png";
box.appendChild(o);
o.setAttribute("id", "devildead");
o.style.left = leftbird;
o.style.top = topbird;

// Function for moving the dead bird
var delay = 1;
var top = document.getElementById("devildead");

//Here I got the error
var currentTop = parseInt(getComputedStyle(devildead).top, 10);

// Start
setTimeout(move, delay);
function move(){
    if (currentTop <= 480) {
      currentTop += 2;
      top.style.top = currentTop + "px";
      setTimeout(move, delay);
    }
}

1 个答案:

答案 0 :(得分:0)

我猜这是导致错误的行

var currentTop = parseInt(getComputedStyle(devildead).top, 10);   
                                     //               ^^ here

由于您没有devildead变量,因某种原因您使用元素top

命名变量
var currentTop = parseInt(getComputedStyle(top).top, 10);  

甚至更好,不要将元素放在名为top的变量中,因为它会导致混淆

var devildead = document.getElementById("devildead");

var currentTop = parseInt(getComputedStyle(devildead).top, 10);