Эффекты смены двух фотографий на CSS

Фотографии меняются в циклическом порядке

Падение сверху

Первая фотография в этом примере используется 2 раза, чтобы определить ее пропорции

Этот вариант можно протестировать на codepen

Поворот с прозрачностью

Этот вариант можно протестировать на codepen

Увеличение

Этот вариант можно протестировать на codepen

Горизонтальное вращение

Для вертикального нужно заменить rotateY на rotateX

Фильтр с прозрачностью

Смена фотографий через фильтр с добавлением прозрачности. В примере используется brightness, но можно выбрать и любой другой фильтр

Смотрите также:

Добавить комментарий:

Ваш комментарий отправлен!

Комментарии:

  • Евгений:

    Привет. Покажите на одном примере, как запустить вашу анимацию при hover. Что никак не выходит.

    Ответить
    • Alexander:

      На 3 примере:
      Удаляем вызов анимации

      animation: scale 10s linear 5s infinite;

      и

      animation: scale 10s linear infinite;

      и добавляем:

      .photo-container-3:hover .photo-1 {
      	animation: scale 10s linear infinite;
      	z-index: 1;
      }
      .photo-container-3:hover .photo-2 {
      	animation: scale 10s linear 5s infinite;
      }
      Ответить
    • Alexander:

      Еще 1 вариант - это использовать animation-play-state
      Для классов
      .photo-container-3 .photo-1 и .photo-container-3 .photo-2 добавляем

      animation-play-state: paused;

      и запускаем их по ховеру:

      .photo-container-3:hover .photo-1 {
      	animation-play-state: running;
      }
      .photo-container-3:hover .photo-2 {
      	animation-play-state: running;
      }
      Ответить
      • Евгений:

        Спасибо. Понятно. Тут дело оказывается ещё и в последовательности правил. Не нашёл ещё как убрать задержку. Так как получается при наведении она ждёт несколько секунд. Я делаю 4-ый пример.

        Ответить
  • lapsha:

    Я вот воспользовался последним вариантом, но проблема в том, что мне нужно остановить цикл смены изображений и зафиксироваться на втором слайде, но никак не пойму как это можно сделать ?

    Ответить
    • Alexander:

      Т.е. сменить 1 раз фото и все?
      Если так, то заменяем классы на:

      .photo-container-5 .photo-1 {
      	position: relative;
      }
      .photo-container-5 .photo-2 {
      	position: absolute;
      	top: 0;
      	animation: brightness 10s linear 1;
      }
      @keyframes brightness {
      	0% {
      		opacity: 0;
      	}
      	90% {
      		opacity: 0;
      		filter: none
      	}
      	95% {
      		filter: brightness(10);
      	}	
      	100% {
      		opacity: 1;
      	} 	
      }
      

      Только в этот момент фотка может находиться за пределами экрана.

      Ответить
      • lapsha:

        Это то, что было нужно ! спасибо !

        Ответить