简体   繁体   English

循环遍历div中的每个图像并将变量设置为倍数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM