javascript - 为什么不能动态更改 css style.left 和 style.top 工作

标签 javascript jquery html css

我试图在按下 w、a、s 和 d 键时移动图像,但没有任何反应,控制台中也没有显示任何内容。任何帮助或建议将不胜感激。

var moveBy = 10;
function moveObj(name, xPix, yPix)
{
    var obj = document.getElementById(name);
    var xp = parseInt(obj.style.left) + xPix;
    var yp = parseInt(obj.style.top) + yPix;
    obj.style.left = xp;
    obj.style.top = yp;
}
$(document).ready(function()
{
    $('body').keydown(function(e)
    {
        if(e.keyCode == 68)
        {
            moveObj('player', moveBy, 0);
        }
        else if(e.keyCode == 65)
        {
            moveObj('player', -moveBy, 0);
        }
        else if(e.keyCode == 87)
        {
            moveObj('player', 0, -moveBy);
        }
        else if(e.keyCode == 83)
        {
            moveObj('player', 0, moveBy);
        }
    });
});

最佳答案

您是否在玩家对象上设置了 position:relative

这将需要移动玩家。如果您将其设置为静态,它就不会移动。

关于javascript - 为什么不能动态更改 css style.left 和 style.top 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23979889/

相关文章:

javascript - Facebook Graph API 我/ friend 没有返回任何内容

javascript - 如何减少javascript中的多个foreach?

javascript - 更改输入 -> 无需单击即可更改复选框模型

javascript - 如何在jquery中更改日期选择器的值

javascript - 记住用户按下的按钮

html - 单击 Wordpress 中的父菜单项时如何转到子菜单?

javascript - 有没有办法在javascript中的指定位置识别页面上的元素?

javascript - <li> 元素的目标子元素

javascript - 使用ajax加载特定的div内容

html - 如何让表格中的字符保持在最前面