2

我有一个设置为 620px 宽的 jquery 轮播。我正在使用网格 960 将图像放置在里面。我一次显示 4 张图像。

为了做到这一点,我将显示的 4 个组中的每个第一个图像类设置为“grid_2 alpha”,每隔四个设置为“grid_2 omega”,而在两者之间我设置为仅 grid_2。

这给了我需要的 620 像素。我正在从数据库中提取,我正在尝试动态设置类,但不能完全获得类组中的每个第一个和第四个。

                    <?php $loopIndex = 1; ?>
                    <?php foreach ($pub_values as $v) { 
                    if($v['pub_of_the_month'] == 1)
                    {
                    ?>
                    <?php if ($loopIndex == 1 || $grid_class=="grid_2 omega") $grid_class="grid_2 alpha";
                            else if($loopIndex%4 == 0) $grid_class="grid_2 omega"; 
                            else $grid_class="grid_2"; 
                          $filename = "images/pub_images/120x160/".$v['id'].".jpg";
                          if (!file_exists($filename)) $filename = "images/pub_images/120x160/blank.gif";       
                    ?>
                        <div class="<?php echo $grid_class?>">
                            <a href="#">
                                <img src="<?=$filename;?>" alt="<?=$v['name'];?>" width="120" height="160" />
                                <?=$v['name'];?>
                            </a>
                        </div>
                    <?php $loopIndex = $loopIndex + 1; } }?>

上面的代码是我实现以下目标的最佳尝试。

图片

1 - grid_2 阿尔法

2 - 网格_2

3 - 网格_2

4 - grid_2 欧米茄

5 - grid_2 阿尔法

6 - 网格_2

7 - 网格_2

8 - grid_2 欧米茄

9 - grid_2 阿尔法

4

2 回答 2

3

简单的数学,除以余数。

也许您可以通过查看以下代码来弄清楚:

for($i = 1; $i <= 9; $i++){
    echo "\n $i ";
    if($i % 4 == 1){
        echo " alpha";
    }elseif($i % 4 == 0){
        echo " omega";
    }
}

现场示例:http ://codepad.org/LIepxlJm

于 2012-04-21T20:28:32.487 回答
1

也许你应该只使用一个for循环:

for ($i = 0; $i< sizeof($pub_values); $i++) { 
   $classes =['grid_2'];
   if($i%4 == 0) $classes[] = 'alpha';
   if($i%4 == 3) $classes[] = 'omega';
}

编辑:这只是试图展示一种方法,而不是试图在语法上正确。最后,您想加入(或在 php 中内爆)您的类以获取字符串....(也没有为您实现)

于 2012-04-21T20:33:05.780 回答