javascript - 使用javascript移动div

标签 javascript html css

我需要知道这段代码的问题是什么。只要单击右键,它的意思就是将位置右侧的像素数量更改为 2。但出于某种我不知道的原因,div 只向右移动一次,仅此而已。

document.onkeydown = KeyPressed;

    function KeyPressed(k) {
    
    var LeftBtn = 37;
    var RightBtn = 39;
    var UpBtn = 38;
    var DownBtn = 40;
    
    var Player = document.getElementById("Player");
    var BeginningPos = 0;
    
    if (k.keyCode == RightBtn) {
        BeginningPos = BeginningPos + 20;
        Player.style.left = BeginningPos + "px"; 
    }
    
    }
#Background { 
    height:400px; 
    width:600px; 
    outline: 5px solid black; 
    position:relative; } 
 
    #Player { 
    position:absolute; 
    height:20px; 
    width:40px; 
    outline: 5px solid black; 
    background-color:red; left: 0; 
    font-size:10px;
    color:#fff;
    padding:20px;
    }
<div id="GameBackground">
    <div id="Player"></div>   
    </div>

最佳答案

变量 BeginningPos 需要退出函数,现在每次单击按钮时该值将始终为 0,因此按钮将移动一次,仅此而已。

document.onkeydown = KeyPressed;
var BeginningPos = 0;
function KeyPressed(k) {

   var LeftBtn = 37;
   var RightBtn = 39;
   var UpBtn = 38;
   var DownBtn = 40;

   var Player = document.getElementById("Player");

   if (k.keyCode == RightBtn) {
      BeginningPos = BeginningPos + 20;
      Player.style.left = BeginningPos + "px"; 
    }
}

关于javascript - 使用javascript移动div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48545764/

相关文章:

html - <h2> 同名标签的不同样式

html - Chrome 上的按钮高度

javascript - 在半径范围内拾取食物对象

javascript - 计算阶乘超出 Javascript 中的最大整数限制

javascript - 使用jquery动态添加新行和新子行

css - 如何强制 ShiftNav 在菜单打开时锁定标题( Logo )

macos - CSS:无法获得背景大小:包含在 Firefox 5 中工作

javascript - 如何在angularjs中的对象数组中推送i次

html - 如何在 bootstrap 中对齐底部行 div?

jquery - 我想在标题右侧添加图片,同时将标题保持在页面中央