OnlyGoRush
@OnlyGoRush
Студент

Как реализовать автоматическое изменение высоты блока при изменении ширины окна браузера или ориентации экрана (на чистом JS)?

У меня имеется блок iframe с видеороликом внутри. В CSS были уже заданы параметры, такие как height (например, 720), max-width (например, 1280) и width:100%. Однако, при изменении размеров окна браузера ПК или ориентации экрана смартфона, корректно изменяется только ширина видео блока. Высота остается прежней.

Я попытался решить данный вопрос и написал скрипт, который каждые пол секунды менял бы высоту блока, в зависимости от его ширины, умножая эту самую ширину на число, которое в свое время уже было получено делением уже известных нам высоты на ширину.

Скрипт:
var ifr = document.getElementById('iFrame1');
var timerId = setTimeout(function tick() {
  ifr.style.height = ifr.clientWidth * 0.5625 + 'px';
  timerId = setTimeout(tick, 500);
}, 0);


Однако это не является грамотным решением, так как скрипт в основном будет в холостую выполнять свою операцию каждую половину секунды. Поэтому я интересуюсь, как переписать этот скрипт так, чтобы он срабатывал не по прошествии какого-то периода времени, а реагировал бы именно на изменение ширины окна браузера пользователем, ну, и также на смену ориентации устройства, если содержимое будет просматриваться на смартфоне (что, наверное, одно и тоже).

Ну, и мне также интересно на сколько сильной из-за этого может быть нагрузка на устройство. Возможно даже лучше будет, чтобы оставалась небольшая пауза в те же пол секунды, однако выполнение скрипта каждый раз просто так без нужды представляется явно лишнем.
  • Вопрос задан
  • 594 просмотра
Решения вопроса 1
SmthTo
@SmthTo Куратор тега CSS
Все перепёлки мира будут оплакивать мою смерть.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы