javascript - 如何阻止我的角色走出 div?

标签 javascript jquery html css

所以我才刚刚开始接触 Jquery,我一直在努力寻找一种方法,让我的 Angular 色在接触到 div 的末端或 div 的墙壁时停止。

这是我的 jquery 代码:

$(document).keydown(function(e) {

var position = $('#charlie').position();

switch(e.keyCode) {

    case 39: // right
    $('#charlie').css('left', position.left + 20 + 'px').removeClass('flip');
    break;

    case 37: // left
    $('#charlie').css('left', position.left - 20 + 'px').addClass('flip');

}


});

CSS:

body {

padding: 0;
margin: 0;
}

h1 {
text-align: center;
font-family: jennaSue;
font-size: 50px;
}

.container {
background-image: url(../img/bg.jpg);
display: block; 
margin: auto;
max-width: 500px;
height: 340px;
padding: 10px;
}

#charlie {
    width: 70px; 
    height: 80px;
    margin-top: 260px;
    display: block;
    margin-right: auto;
    margin-left: auto;
    position: absolute;
}

.flip {
    transform:scaleX(-1);
}

和HTML代码:

</head>
<body>

<h1>Charlie Brown Run and Dodge</h1>


<div class="container">
    <img src="img/charlie-brown.png" id="charlie" class="character">
</div>

提前致谢!

最佳答案

我认为您需要做的就是检查您的 keydown 处理程序中的边界:

$(document).keydown(function(e) {

var position = $('#charlie').position(),
    width = $('#charlie').width(),
    max = $('.container').width(),
    step = 20;

switch(e.keyCode) {

    case 39: // right
    if ( position.left + width + step < max ) {
        $('#charlie').css('left', position.left + step + 'px').removeClass('flip');
    }
    break;

    case 37: // left
    if ( position.left - step > 0 ) {
        $('#charlie').css('left', position.left - step + 'px').addClass('flip');
    }

}


});

此外,我更改了多次出现的 20。到 step可变的,所以如果你想调整它,你只需要在一个地方改变它。

关于javascript - 如何阻止我的角色走出 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33879048/

相关文章:

html - Safari 自动填充信用卡

html - 你能强制所有行显示在屏幕上吗?

javascript - 通过过滤掉空项从数组构造一个新数组

javascript - 计算长字符串中每个句子的单词,jquery

jquery - 当url有一些id时如何设置div显示属性 block ?

javascript - 如何创建另一个链接来查看灯箱中的图像 - 图库插件

javascript - jQuery 日期选择器在 ASP.Net MVC4 中无法正常工作

javascript - 带过滤器的 HTML 选择字段

javascript - 在 ng-repeat 中生成 ng-model

javascript - 使用 JavaScript 隐藏复选框时取消选中该复选框