Javascript if语句if(ball.style.left==';0px';){

Javascript if语句if(ball.style.left==';0px';){,javascript,css,if-statement,equals,semantics,Javascript,Css,If Statement,Equals,Semantics,我认为问题很简单,但我看不出来。 我只想在单击“骰子”时将“球”向左移动132.5px,如果球向左移动0px 我认为if语句是错误的!!有人能帮我吗? var ball = document.getElementById('ball'); var dice = document.getElementById('dice'); function move() { if (ball.style.left === '0px') { ball.style.left = 132.5 + 'p

我认为问题很简单,但我看不出来。 我只想在单击“骰子”时将“球”向左移动132.5px,如果球向左移动0px

我认为if语句是错误的!!有人能帮我吗?

var ball = document.getElementById('ball');
var dice = document.getElementById('dice');

function move() {
  if (ball.style.left === '0px') {
    ball.style.left = 132.5 + 'px';
  }

}

dice.onclick = move;

问题其实很简单,我是在用javascript编写蛇代码时发现这个问题的

当您想测试球的位置时,不要使用
ball.style.left
而是
ball.offsetLeft

在演示中,您会注意到
ball.style.left
不会返回任何内容,而
offsetLeft
会返回任何内容。仅当您要更改其位置时才使用
ball.style.left

这是你应该做的

if (ball.offsetLeft == 0) {
    ball.style.left = 132.5 + 'px';
  }
新的演示与一个例子


好的,是您的ball元素的css属性(位置)绝对?@Inês Rodrigue可能重复yes,它是绝对的。当我取下if语句时,球在我单击骰子时移动。因此我认为问题一定是ball.style.left=='0px'我认为css不是问题。注意
style
属性表示元素
style
属性。它不是计算的styl元素的e。要获取计算样式,请使用
getComputedStyle
函数:
window.getComputedStyle(ball.left
left
属性的默认值当然是
auto
。谢谢!我要尝试一下。请记住,0现在是一个数字,而不是字符串。