javascript - div 的 jquery 碰撞检测

标签 javascript jquery css collision

我正在尝试使用 jQuery 学习一些编程。我有一个 800 x 800 像素尺寸的 div。我有另一个 16 x 16 像素的 div,我想使用箭头键在更大的 div 中移动。问题是我无法让它正常工作,有人可以告诉我我做错了什么吗。

向左移动有效,如果 css 属性“left”低于 0px,它会停止 16x16 div:

$(this).keydown(function(e) {  
    if (e.which == '37' && ($('#p1').css('left') > "0px")) {
        $('#p1').css('left', '-=16px')
    }
});

向右移动不起作用,它会在距左侧 80px 处停止 16x16 div,无论我尝试超过 80px 的值是什么:

$(this).keydown(function(e) {  
    if (e.which == '39' && ($('#p1').css('left') < '800px')) {
        $('#p1').css('left', '+=16px')
    }
});

同样使用类似的方法上下移动也不起作用,移动限制不正确。在没有 && 参数的情况下向所有方向移动都可以正常工作。

最佳答案

你的问题是:

css('left') < '800px')

你比较的是字符串而不是数字;

尝试:

var left = parseInt($('#p1').css('left'),10);
if (e.which == '39' && (left < 800)) {...

关于javascript - div 的 jquery 碰撞检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8829421/

相关文章:

javascript谷歌地图一次只有一个功能可以工作,其余的不行

html - 使所有列为窗口高度的 100%

CSS 容器宽度

javascript - 通过循环选择复选框?

javascript - 倒计时脚本,无法正确显示或倒计时

javascript - 单击原始div时输出可滚动div,并自动滚动到div底部

javascript - 让一个固定的div通过点击增长到宽度100%

javascript - 在全局 Javascript 变量中保存临时表单信息

javascript - Bootstrap 导航菜单不会折叠

javascript - 在同步 ajax 调用期间将鼠标指针设置为忙碌