Переворачивающееся изображение

  alexei 13/10/2022 - 09:57

Здесь вы узнаете, как заставить изображение переворачиваться (эффект зеркального отражения) при помощи CSS.


Чтобы увидеть эффект, наведите курсор мыши на изображение:

Париж

Как сделать переворачивающееся изображение

Пример:


<style>
img:hover {
  -webkit-transform: scaleX(-1);
  transform: scaleX(-1);
}
</style>

<img src="paris.jpg" alt="Paris">

3D переворачивающееся изображение с текстом

Здесь вы узнаете, как сделать анимированное 3D переворачивающееся изображение с текстом:


Париж

Париж

Какой красивый город!


Шаг 1) Добавляем HTML:


<div class="flip-box">
  <div class="flip-box-inner">
    <div class="flip-box-front">
      <img src="img_paris.jpg" alt="Paris" style="width:300px;height:200px">
    </div>
    <div class="flip-box-back">
      <h2>Париж</h2>
      <p>Какой красивый город!</p>
    </div>
  </div>
</div>

Шаг 2) Добавляем CSS:


/* Контейнер-перевертыш — ширина и высота могут быть любыми.
 Мы добавили рамку, чтобы показать, что сам переворот доступен
 при наведении уже из коробки (удалите perspective, если не нужен 3D эффект */
.flip-box {
  background-color: transparent;
  width: 300px;
  height: 200px;
  border: 1px solid #f1f1f1;
  perspective: 1000px; /* Удалите, если не нужен 3D эффект */
}

/* Этот контейнер нужен для позиционирования передней и задней стороны */
.flip-box-inner {
  position: relative;
  width: 100%;
  height: 100%;
  text-align: center;
  transition: transform 0.8s;
  transform-style: preserve-3d;
}

/* Переворачиваем по горизонтали при наведении мыши на контейнер-перевертыш */
.flip-box:hover .flip-box-inner {
  transform: rotateY(180deg);
}

/* Позиционирование передней и задней стороны */
.flip-box-front, .flip-box-back {
  position: absolute;
  width: 100%;
  height: 100%;
  -webkit-backface-visibility: hidden; /* Safari */
  backface-visibility: hidden;
}

/* Стиль передней стороны (на случай, если изображения не будет) */
.flip-box-front {
  background-color: #bbb;
  color: black;
}

/* Стиль задней стороны */
.flip-box-back {
  background-color: dodgerblue;
  color: white;
  transform: rotateY(180deg);
}