我正在创建一个简单的图片库,要求首先显示第一张图片,而之后的图片应该具有display;none
属性。我如何实现它,以便只有第一张图像不同?以下是我目前的代码。
<div class="content">
<?php
foreach($variants['productVariants'][0]['productVariantImages'] as $variantImage){
if(isset($variantImage) && $variantImage['visible']){
?>
<img src="<?php echo $variantImage['imagePath']; ?>" class="image_<?php echo $variantImage['id']; ?>" style="display:none" alt="" />
<?php }}?>
</div>
我当前的输出是
<div class="content">
<img src="images/bigs/2.jpg" class="image_1" style="display:none" alt="">
<img src="images/bigs/2.jpg" class="image_2" style="display:none" alt="">
<img src="images/bigs/3.jpg" class="image_3" style="display:none" alt="">
</div>
我希望能够实现以下目标
<div class="content">
<img src="images/bigs/1.jpg" class="image_1" alt="">
<img src="images/bigs/2.jpg" class="image_2" style="display:none" alt="">
<img src="images/bigs/3.jpg" class="image_3" style="display:none" alt="">
</div>
答案 0 :(得分:2)
您有多种方式:
使用变量(例如$first
),在循环前将其设置为true
,在第一次迭代结束时将其设置为false
使用你的(可能是0索引的?)数组的键(例如foreach($variants['productVariants'][0]['productVariantImages'] as $key => $variantImage){
),注意$key =>
部分。然后,您可以检查循环中$key
是否为0,这是您的第一个元素。
正如@alirezasafian建议的那样,只需使用CSS - 这可能是最通用的方法。
答案 1 :(得分:1)
你不需要使用php,你可以通过css。
来实现.content img:not(:first-child)
{
display: none;
}
.content img:not(:first-child) {
display: none;
}
<div class="content">
<img src="images/bigs/1.jpg" class="image_1" alt="1">
<img src="images/bigs/2.jpg" class="image_2" alt="2">
<img src="images/bigs/3.jpg" class="image_3" alt="3">
</div>