serii81
@serii81
Я люблю phр...

Как правильно написать формулу для вывода элементов на экран?

Добрый день.

Я уже пол задачи решил, осталось добавить автоматики.

Есть контейнер, в котором есть неисчерпаемое количество элементов.

В одном ряду помещаются по 3 элемента.

Для первого ряда задается класс 'fadeInRight', для второго 'fadeInLeft' и потом для 3 ряда опять 'fadeInRight'.

Никаких оберток для рядов создавать не нужно, так как контейнеру задал свойство grid.

Вот как мне удалось решить эту задачу

<div class="auto">
				<?php $i = 1; while($auto->have_posts()): ?>
					<?php
						$auto->the_post();
						$content = get_the_content();
					?>

					<div class="auto__item wow <?php echo (( $i > 0 && $i < 4 ) || ($i > 6 && $i < 10) || ($i > 12 && $i < 16)) ? 'fadeInLeft' : 'fadeInRight'; ?>">
                        <?php the_post_thumbnail('full'); ?>
						<h3><?php the_title(); ?></h3>
						<p><?php echo wp_trim_words($content); ?></p>
						<a href="<?php the_permalink(); ?>" class="btn">Read more</a>
					</div>

					<?php $i++; endwhile; ?>
                </div>


Понятно, что я не могу вечно высчитывать и прописывать ( $i > 0 && $i < 4 )

Закономерность одна, что i кратен 6.

Я не так силен в математике.
Проект тестовый, увидел плагин isotope на jquery, и захотелось применить, но столкнулся с данной проблемой

Заранее буду благодарен за подсказку.
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
TommyV888
@TommyV888 Куратор тега PHP
-
<?php echo ( $i % 6 > 0 && $i % 6 < 4 ) ? 'fadeInLeft' : 'fadeInRight'; ?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Для работы с кратностью есть такая штука как remainder или modulus. Тут подробнее. Условно проверка if ( $var % 6 ) возвращает 0 если переменная $var делится на 6 без остатка (то есть кратна 6). Все это есть и в документации PHP в разделе про арифметические операторы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽