jquery - 将 div 限制为仅适用于其父级

标签 jquery html css

我正在执行此输出,它已经按照我想要的方式运行了。这就像移动 div使用箭头键,但我的问题是当我按箭头键移动时,颜色为灰色div超越自己的 parent div 。我想要实现的是灰色div将无法走出其父级 div (有红色边框),即使我不断地按箭头键。

这是演示 jsFiddle

有什么帮助吗?

最佳答案

将代码更改为

$(function(){
    var spaceship = $('<div id="spaceshipContainer"/>'); // store reference to actual jQuery object
    var cS = $('#centerSpace').append(spaceship);
    var limits = {width: cS.width()-spaceship.width() , height:cS.height()-spaceship.height()}; // pre-calculate the limits

    $(document).keypress(function(e){
        var position = $('#spaceshipContainer').position();


        switch(e.keyCode){

            case 37:
                position.left -= 10;
                break;
            case 38:
                position.top -= 10;
                break;
            case 39:
                position.left += 10;
                break;
            case 40:
                position.top += 10;
                break;
        }

        position.left = Math.max(Math.min(position.left, limits.width),0); // enforce horizontal limits
        position.top = Math.max(Math.min(position.top, limits.height),0); // enforce vertical limits

        spaceship.css({left:position.left, top:position.top});
    });
});

还将 position:relative 添加到 #centerSpace

演示位于 http://jsfiddle.net/4bpgp/17/

关于jquery - 将 div 限制为仅适用于其父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12730082/

相关文章:

javascript - Chrome 扩展程序未正确更改 DOM

javascript - 在保存到数据库之前取消屏蔽输入

html - 如何在 div 中对齐 Accordion 居中

html - 使按钮执行CSS代码并在刷新时保存

css - 为什么行距不一样?

javascript - jQuery 未定义值

javascript - 高效编码 jquery 动画

css - 如何禁用特定元素在移动设备上的缩放功能?

html - <li> 元素在其中一个元素中的文本溢出时会失去所需的对齐方式

javascript - 如何使显示内容具有响应性?