jQuery动画排序

时间:2013-04-04 06:23:56

标签: javascript jquery html css

我已经在jsFiddle中重新创建了我目前在网站上的内容。我想将点击功能转换为基于时间的动画,从第一个div(我的图像中的图像)开始被“选中”开始。在几秒钟之后,比如2000毫秒,它应该将10px的动画恢复到默认状态,并且下一个div应该将10px的动画降低到“选定”状态,在此状态下它会暂停2000毫秒。我希望继续这个,直到所有元素都以这种方式动画,然后通过在最后一个div动画完成时将第一个div返回到“selected”状态无限期地重复动画过程。我一直在尝试并试图自己解决这个问题,但我似乎无法正确设置延迟。

以下是当前功能的演示:http://jsfiddle.net/uFPtw/5和以下js:

var prevLeft = 0;
var zInd = $('#projects div').length + 1;
$('#projects div').each(function() {
    prevLeft = prevLeft + 40;
    zInd = zInd - 1;
    $(this).css({
        'left': (prevLeft-40)+'px',
        'z-index': zInd
    });
});
$('#projects div').on('click', function() {
    $(this).css({
        'z-index': $('#projects div').length,
        'box-shadow': '0 0 20px #000',
        'cursor': 'default'
    }).animate({
        'top': '+10px'
    }, 200);
    if ( $('#projects div').css('top') != '0' ) {
        $(this).siblings('div').css({
            'box-shadow': '0 0 10px rgba(0,0,0,0.5)',
            'cursor': 'pointer'
        }).animate({
            'top': '0'
        }, 200);
    }
    zInd1 = 4;
    $(this).prevAll().each(function() {
        zInd1 = zInd1 - 1;
        $(this).css({
            'z-index': zInd1
        });
    });
    $(this).nextAll().each(function() {
        zInd1 = zInd1 - 1;
        $(this).css({
            'z-index': zInd1
        });
    });
});

1 个答案:

答案 0 :(得分:0)

我认为您首先捕获div的总数(在您的情况下截至目前),然后当触发点击事件或您的自动功能启动时,您可以检查您是否已到达最后一个div,基于您可以恢复到第一个div并再次调用目标函数。