我正在创建一个简单的图像库,它要求首先显示第一个图像,而之后的图像应该具有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>
您有多种方法:
-
使用变量(例如
$first
,在循环之前将其设置为true
,在第一次迭代结束时将其设置成false
) -
使用您的(可能是0索引?)数组的键(例如
foreach($variants['productVariants'][0]['productVariantImages'] as $key => $variantImage){
,请注意$key =>
部分)。然后,您可以在循环中检查$key
是否为0,这是您的第一个元素。 -
正如@alirezasafian所建议的,只需使用CSS——这可能是最通用的方法。
你不需要使用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>