jQuery在前面每个元素的左边距

jQuery在前面每个元素的左边距,jquery,jquery-animate,each,children,Jquery,Jquery Animate,Each,Children,我有5个图像,点击后我试图将它们设置为彼此相邻的动画,相隔50像素 目前,我正在制作第一个孩子和所有其他50像素的动画,但都在彼此之上 这是我的剧本: var fadedur = 200, fadeop = 0.5, imgwidth = 220, imgleft = 40, imgfirst = -200, imgfh = -100; $('img').on('click', function(){ $('img').css('position

我有5个图像,点击后我试图将它们设置为彼此相邻的动画,相隔50像素

目前,我正在制作第一个孩子和所有其他50像素的动画,但都在彼此之上

这是我的剧本:

var fadedur = 200,
    fadeop = 0.5,
    imgwidth = 220,
    imgleft = 40,
    imgfirst = -200,
    imgfh = -100;

$('img').on('click', function(){
    $('img').css('position','absolute').css('display','block');

    $('.cs').find(':first-child').stop().animate({
            "marginLeft": imgfirst,
            "margin-top": imgfh,
        }, 300);

    $('.cs').find(':first-child').next('img').each(function() {         
        $(this).stop().animate({
            "marginLeft": imgfirst + imgwidth + imgleft,  // imgfirst should
            "margin-top": imgfh,                          // be something that
        }, 300);                                          // states prev()
    });

});​
这是我的小提琴:

我试图让他们看起来像这样:

所以基本上我需要说:

将动画设置为上一个元素的位置+图像宽度+50px左。
$('.cs')。查找(':first child')。下一个('img')
最多只能匹配一个元素,因此调用每个元素是毫无意义的。
查看此更新的小提琴,这是您正在寻找的行为吗?

$('.cs')。查找(':first child')。下一个('img'))
最多只能匹配一个元素,因此对每个元素进行调用是毫无意义的。
查看此更新的小提琴,这就是您要查找的行为吗?

。each()
迭代
next()
的结果。在您的情况下,
next()
只返回第一个图像。因此,您的代码只迭代1个图像

我会将2个迭代组合成1个逻辑迭代

尝试以下方法(对我有用):
也可以在这里拉小提琴:

.each()
迭代
next()
的结果。在您的情况下,
next()
只返回第一个图像。因此,您的代码只迭代1个图像

我会将2个迭代组合成1个逻辑迭代

尝试以下方法(对我有用):
也可以在这里拉小提琴:


你的答案正是我想要的,但是穆萨首先回答了一个正确的答案,所以我会接受他的答案作为我问题的答案。谢谢。你的答案正是我想要的,但是穆萨首先回答了一个正确的答案,所以我会接受他的答案作为我问题的答案。谢谢。如果第一个图像需要做一些不同的事情,您也可以使用.nextAll('img')在第一个图像之后获取完整的图像集合。如果第一个图像需要做一些不同的事情,您也可以使用.nextAll('img')在第一个图像之后获取完整的图像集合。
var fadedur = 200,
    fadeop = 0.5,
    imgwidth = 220,
    imgleft = 40,
    imgfirst = -200,
    imgfh = -100;

$('img').on('click', function(){    
    $('img').css('position','absolute').css('display','block');

    var newLeft = imgfirst;

    $('.cs').find('img').each(function(){
        $(this).stop().animate({
            "marginLeft": newLeft,//imgfirst + imgwidth + imgleft,
            "margin-top": imgfh,
        }, 300);

        newLeft += imgwidth + imgleft;
    });                 
});​