[英]loop through each image in div and set variable as a multiple
I want to loop through all images in a div and set 'left' to be 50px more than the previous image's left setting. 我想循环遍历div中的所有图像,并将“ left”设置为比上一个图像的left设置多50px。 I'm having trouble with syntax, though.
我在语法上遇到了麻烦。 How do I indicate the i-th img?
如何显示第i个img?
html: 的HTML:
<div class="col-md-5 leftimage">
<div class="imageholder">
<img src="img/photo1.jpg" />
<div class="caption">Lorem Ipsum is simply dummy text of the printing and typesetting industry. </div>
</div>
<div class="imageholder">
<img src="img/photo2.jpg" />
<div class="caption">Lorem Ipsum is simply dummy text of the printing and typesetting industry. </div>
</div>
<div class="imageholder">
<img src="img/photo3.jpg" />
<div class="caption">Lorem Ipsum is simply dummy text of the printing and typesetting industry. </div>
</div>
</div>
css: CSS:
.leftimage {
position: relative;
}
.leftimage .imageholder {
position: absolute;
top: 0px;
left: 0px;
cursor: pointer;
width: 300px;
width: max-content;
}
.imageholder:nth-child(1) {
/*left: 100px;*/
}
.imageholder:nth-child(2) {
/*left: 50px;*/
}
.caption {
color: gray;
font-size: 80%;
padding: 10px;
}
jquery: jQuery的:
for (var i = 0; i<$('.imageholder img').length; i++) {
$('.imageholder img')[i].css('left', i*50 + 'px'); //this syntax isn't right
}
If you are already using jQuery, it's best to use .each()
function. 如果您已经在使用jQuery,则最好使用
.each()
函数。
$(".leftimage > div").each(function(index){
$(this).find("img").css("left", index*50 + "px");
});
And here's an example: 这是一个例子:
$(".leftimage > div").each(function(index){ $(this).find('img').css("left", index*50 + "px"); $(this).find('.caption').text(index*50 + "px"); });
.leftimage { position: relative; } .leftimage .imageholder { position: relative; top: 0px; left: 0px; cursor: pointer; width: 300px; width: max-content; } .leftimage .imageholder img { height:100px; width:300px; } .caption { color: gray; font-size: 80%; padding: 10px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="leftimage"> <div class="imageholder"> <img src="http://cdn.sstatic.net/stackexchange/img/logos/so/so-logo.png" /> <div class="caption">Lorem Ipsum is simply dummy text of the printing and typesetting industry. </div> </div> <div class="imageholder"> <img src="http://cdn.sstatic.net/stackexchange/img/logos/so/so-logo.png" /> <div class="caption">Lorem Ipsum is simply dummy text of the printing and typesetting industry. </div> </div> <div class="imageholder"> <img src="http://cdn.sstatic.net/stackexchange/img/logos/so/so-logo.png" /> <div class="caption">Lorem Ipsum is simply dummy text of the printing and typesetting industry. </div> </div> <div class="imageholder"> <img src="http://cdn.sstatic.net/stackexchange/img/logos/so/so-logo.png" /> <div class="caption">Lorem Ipsum is simply dummy text of the printing and typesetting industry. </div> </div> </div>
for (var i = 0; i<$('.imageholder img').length; i++) {
$($('.imageholder img')[i]).css('left', i*50 + 'px'); //this syntax isn't right
}
may do the trick 可能会成功
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.