Как мне обновить JavaScript при изменении CSS без перезагрузки?

#javascript #html #css #responsiveness

#javascript #HTML #css #отзывчивость

Вопрос:

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

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

1. developer.mozilla.org/en-US/docs/Web/API/Window/resize_event

2. Используйте событие resize для пересчета ваших размеров, как указывает Марти. Вы не можете запускать события из изменений в CSS, хотя изменение окна браузера является событием агента пользователя.

3. Вместо того, чтобы вычислять ширину элемента вручную, попробуйте использовать относительную единицу измерения. Например, transform: translateX(-100%) для дочерних элементов в карусели.

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

5. Спасибо всем за отличный совет, теперь он работает! Я использую событие «изменить размер», а также обновил код для использования transform: translateX(-100%) . Я также начал внедрять определенные преобразования для разных размеров носителей. Большое вам всем спасибо!