gpt4 book ai didi

javascript - HTML5 点击同时发送到两个按钮

转载 作者:行者123 更新时间:2023-11-28 01:58:15 25 4
gpt4 key购买 nike

这与我之前关于在单击按钮时移动简笔画的问题有关。
新问题是点击同时发送到两个按钮。

左右按钮一切正常。上下都搞砸了。

HTML

<!DOCTYPE html>
<html>

<style>
#stage{
width: 100px;
height: 100px;
position: relative;
border-style: dashed;
border-color: gray;
border-width: medium;
}

#actor{
width: 13px;
height: 15px;
position: absolute;
left: 0;
top: 0;
background-image: url("E:/Website Projects/man.PNG");

-webkit-transition: all 2s ease-out 0s;
-moz-transition: all 2s ease-out 0s;
transition: all 2s ease-out 0s;
}


</style>

<body>
<div id="stage">
<div id="actor"></div>
</div>

<div>
<button class="control" id="top">TOP</button> <br>
<button class="control" id="left">LEFT</button> <button class="control" id="right">RIGHT</button> <br>
<button class="control" id="down">DOWN</button>
</div>
</body>

<script>
var vertical = 0;
var horizontal = 0;
var shift = 5;

var top = document.querySelector("#top");
var left = document.querySelector("#left");
var right = document.querySelector("#right");
var down = document.querySelector("#down");

top.addEventListener("click",moveTop,false);
left.addEventListener("click",moveLeft,false);
right.addEventListener("click",moveRight,false);
down.addEventListener("click",moveDown,false);

function moveTop(){
var actor = document.querySelector("#actor");
if(vertical>0){
--vertical;
actor.style.top = shift*vertical + "px";
console.log("TOP " + "VERTICAL: " + vertical);
}
}

function moveDown(){
var actor = document.querySelector("#actor");
if(vertical<17){
++vertical;
actor.style.top = shift*vertical + "px";
console.log("DOWN " + "VERTICAL: " + vertical);
}
}

function moveRight(){
var actor = document.querySelector("#actor");
if(horizontal<17){
++horizontal;
actor.style.left = shift*horizontal + "px";
console.log("RIGHT " + "HORIZONTAL: " + horizontal);
}
}

function moveLeft(){
var actor = document.querySelector("#actor");
if(horizontal>0){
--horizontal;
actor.style.left = shift*horizontal + "px";
console.log("LEFT " + "HORIZONTAL: " + horizontal);
}
}

</script>

</html>

控制台日志

DOWN VERTICAL: 1 floating%20man.html:71
TOP VERTICAL: 0 floating%20man.html:62

就是点击down的日志。 Top 将不起作用,因为它是这样编码的。 Top 仅在 vertical 具有非零值时才有效。

为什么会这样?如何解决?

最佳答案

标识符 top 已经在 Web 浏览器中使用,并且指的是框架集上的最顶层窗口(如果没有框架,则为当前窗口)。至少在 Chrome 上,你不能覆盖它。您必须为按钮引用选择一个新的变量名称。

工作版本:http://jsbin.com/uzanom/1/edit

关于javascript - HTML5 点击同时发送到两个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15588365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com