2

我正在尝试制作 100 个动画,每个动画都有不同的延迟。出了点问题,因为每个人都没有收到他特定的动画。这是代码:

var text = $("#cont").text();
var count = 1;
var before = 0;
var after = 0;
var counter = "";
for (var i = 1; i <= 20; i++) {
    for (var j = 1; j <= 5; j++) {
        counter = before + "." + after;
        after += 2;
        text += "<div class='ball' id='ball" + count + "'></div><br />";
        $("#ball" + count).css({
            "-webkit-animation": "ball 3.5s linear" + counter + "s infinite normal",
            "-moz-animation": "ball 3.5s linear" + counter + "s infinite normal",
            "-ms-animation": "ball 3.5s linear" + counter + "s infinite normal",
            "-o-animation": "ball 3.5s linear" + counter + "s infinite normal",
            "animation": "ball 3.5s linear" + counter + "s infinite normal",
        });
        count++;
    }
    after = 0;
    before++;
}
i--;
$("#cont").html(text);
4

1 回答 1

1

您正在尝试申请.css()一个字符串text,这是您的问题区域,因为css()仅适用于 DOM 对象。另一件事是您text在循环完成后放入 DOM,因此您的任何 css 都已在环形。我更改了它,因此您将 html 附加到$('#cont')循环中的对象,以便可以对其进行操作。

你可以在这里看到小提琴:http: //jsfiddle.net/FMBNc/3/

还创建了一个替代方案,您只应用动画延迟并在 CSS 文档中声明动画的其余部分:http: //jsfiddle.net/FMBNc/4/

var text = $("#cont"); //changed to just the object
var count = 1;
var before = 0;
var after = 0;
var counter = "";
for (var i = 1; i <= 20; i++) {
    for (var j = 1; j <= 5; j++) {
        counter = before + "." + after;
        after += 2;
        //putting the html object in the DOM so it can be manipulated by .css()
        text.append("<div class='ball' id='ball" + count + "'></div>");
        $("#ball" + count).css({
            "-webkit-animation": "ball 3.5s linear " + counter + "s infinite",
            "-moz-animation": "ball 3.5s linear " + counter + "s infinite",
            "-ms-animation": "ball 3.5s linear " + counter + "s infinite",
            "-o-animation": "ball 3.5s linear " + counter + "s infinite",
            "animation": "ball 3.5s linear " + counter + "s infinite"
        });
        count++;
    }
    after = 0;
    before++;
}

此外,您不需要normal在 CSS 声明中,因为它是默认设置。

于 2013-06-30T16:49:43.607 回答