首页 > 解决方案 > 无限次重复一个函数

问题描述

如何animate无限次重复以下功能?最好的方法是什么?

function animate(count) {

    if (count == 0) {
        $('.path').css({
            'animation': 'draw2 4s'
        });
    }

    if (count == 1) {
        $('.path').css({
            'animation': 'draw1 4s'
        });
    }

    if (count == 2) {
        $('.path').css({
            'animation': 'draw3 4s'
        });
    }

    if (count > 0) $('.path:first').one("animationend", function () {
            animate(count - 1)
    });
}

标签: javascriptjquerycss

解决方案


我认为您的功能可以无限内置,还可以使用switch和缓存jQuery选择:

function animate(count) {

    var path = $('.path');

    while (true) {
        switch (count) {
            case 0 :
                path.css({
                    'animation': 'draw2 4s'
                });
                break;
            case 1:
                path.css({
                    'animation': 'draw1 4s'
                });
                break;
            case 2:
                path.css({
                    'animation': 'draw3 4s'
                });
                break;
            default:
                path.first().one("animationend", function () {
                    animate(count - 1)
                });
        }
    }
}

推荐阅读