Javascript if语句if(ball.style.left==';0px';){
我认为问题很简单,但我看不出来。 我只想在单击“骰子”时将“球”向左移动132.5px,如果球向左移动0px 我认为if语句是错误的!!有人能帮我吗?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
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现在是一个数字,而不是字符串。