我想在每次点击时移动图像,但使用此代码只能在一次点击时工作。
function moveright() {
console.log("moveright invoked.");
var myImg = document.getElementById("image");
myImg.style.position = "absolute";
var cLeft = myImg.style.left;
if (cLeft == 500) {
console("Maximum reached.");
} else {
myImg.style.left = (cLeft + 50) + "px";
}
}
<img id="image" src="https://i.stack.imgur.com/TiYE3.jpg?s=32&g=1" onclick="moveright()" />
style="left: 0px"
var cLeft = parseInt(myImg.style.left);
function moveright() {
var myImg = document.getElementById("image");
myImg.style.position = "absolute";
var cLeft = parseInt(myImg.style.left);
if (cLeft == 500) {
console("Maximum reached.");
} else {
myImg.style.left = (cLeft + 50) + "px";
}
}
<img id="image" src="https://i.stack.imgur.com/TiYE3.jpg?s=32&g=1" onclick="moveright()" style="left: 0px" />
或者,您可以跳过left
样式声明并使用window.getComputedStyle
获取计算出的样式值。
function moveright() {
var myImg = document.getElementById("image");
myImg.style.position = "absolute";
var cLeft = parseInt(window.getComputedStyle(myImg).left);
if (cLeft == 500) {
console("Maximum reached.");
} else {
myImg.style.left = (cLeft + 50) + "px";
}
}
<img id="image" src="https://i.stack.imgur.com/TiYE3.jpg?s=32&g=1" onclick="moveright()" />
使用parseInt
,因为style.left
在px中有价值。如果style.left
为空,则将0作为初始值传递。
function moveright() {
var myImg = document.getElementById("image");
myImg.style.position = "absolute";
var cLeft = parseInt(myImg.style.left || 0);
if (cLeft == 500) {
alert("Maximum reached.");
} else {
myImg.style.left = (cLeft + 50) + "px";
}
}
<img id="image" src="https://i.stack.imgur.com/TiYE3.jpg?s=32&g=1" onclick="moveright()" />