javascript - 在 jQuery 中一次生成多个 div

标签 javascript jquery html css animation

我正在尝试使用 jquery 制作一个游戏,其中使用函数附加元素符号。到目前为止,每当我按下空格键时都会生成子弹,但我想生成 3-5 堆子弹。将生成 3-5 颗子弹,然后短暂休息,然后再次生成 3-5 颗子弹,然后该过程继续。元素符号附加为 div 元素。这是代码,

function generateBullet() {
var Player = $('#player');
var PlayerLeft = Player.offset().left;
var PlayerTop = Player.offset().top - 50;
var appendingValue = "<div class='bulletID' style=' position: absolute; left: 250px; top: 250px;'></div>";
var appendSize = $('.bulletID').size();
if (appendSize >= 3) {
    $('#content').delay(5000).append(appendingValue);
} else {
    $('#content').append(appendingValue);
 }
}

function animateBullet() {
var bulletID = $('.bulletID');
bulletID.each(function () {
    var nowTop = $(this).offset().top;
    $(this).css("top", nowTop - 25);
 });
}

var keys = {}
$(document).keydown(function (e) {
keys[e.keyCode] = true;
});

$(document).keyup(function (e) {
delete keys[e.keyCode];
});

function shoot() {
var Player = $('#player');
for (var direction in keys) {
    if (!keys.hasOwnProperty(direction)) continue;
    if (direction == 32) {
        generateBullet();
    }
 }
}

JSFIDDLE 演示:http://jsfiddle.net/ygz5wo7r/1/

我不知道该怎么做。非常感谢您的帮助。 TnQ.

最佳答案

尝试 this

我加了

return false;

之后

if (appendSize >= 3) {
  ...

parseInt($(this).css("top"))< 0 && $(this).remove();

animateBullet()

当子弹离开屏幕时移除子弹

关于javascript - 在 jQuery 中一次生成多个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25918876/

相关文章:

javascript - 在函数中返回 "this"是否是使用方法创建对象的推荐模式?

javascript - Javascript 中 OOP 中的重复事件

javascript - Highcharts 折线图内存不足

javascript - Jquery 悬停显示和隐藏可见性问题

javascript - 通过循环将 CSS 类应用于每个 <li> 元素

javascript - 如何使用 Cropper 通过 javascript 检索 toDataURL 字符串 by fengyuanchen

javascript - 列表关闭并显示

html - "text-transform: uppercase"在加载期间导致 "jumping"

javascript - 在图像中滑动 - JQuery

javascript - 使输入字段只读其他输入字段的值