jQuery在前面每个元素的左边距
我有5个图像,点击后我试图将它们设置为彼此相邻的动画,相隔50像素 目前,我正在制作第一个孩子和所有其他50像素的动画,但都在彼此之上 这是我的剧本: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
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;
});
});