以下是基于左,右,上或下移动的框的示例 按下箭头键。但是当我添加一个" 激光"和使用 完全相同的原理/代码,使用" laserLeft ++ ;"从左到右移动激光。空格键,它不会移动。我非常 仔细复制了" square"的代码。适用于激光和 我找不到为什么没有动静。 (我没有复制并粘贴整个视图源,因为它与问题无关)。
具体功能问题是 fireLaser()。
#square {
position: absolute;
top: 0px;
left: 0px;
height: 5px;
width: 5px;
background-color: white;
}
#laser {
postion: absolute;
top: 0px;
left 0px;
height: 2px;
width: 5px;
background-color: red;
}
<script>
document.addEventListener("keydown", keyBoardInput);
var boxTop = 0;
var boxLeft = 0;
var laserTop = 0;
var laserLeft = 0;
function moveBoxUp(){
var square = document.getElementById("square");
boxTop--;
square.style.top = boxTop;
};
function moveBoxDown(){
var square = document.getElementById("square");
boxTop++;
square.style.top = boxTop;
};
function moveBoxLeft(){
var square = document.getElementById("square");
boxLeft--;
square.style.left = boxLeft;
};
function moveBoxRight(){
var square = document.getElementById("square");
boxLeft++;
square.style.left = boxLeft;
};
function fireLaser(){
var laser = document.getElementById("laser");
laserLeft++;
laser.style.left = laserLeft;
};
var i = event.keyCode;
if(i == 38){
moveBoxUp();
};
if(i == 40){
moveBoxDown();
};
if(i == 37){
moveBoxLeft();
};
if(i == 39){
moveBoxRight();
};
if (i == 32){
fireLaser();
};
};
</script>
答案 0 :(得分:0)
我发现了我的错误!它输入错误&#34; postion:absolute;&#34;现在它完美无缺!!!