Задать вопрос
@Martyer

Как в JS задать css правило и пересчитывать его при любом изменении?

Здравствуйте.
Столкнулся с такой проблемой.. имеется блок, которому задано свойство position: absolute с нужными координатами. Всё вроде бы отлично, но при изменении ВЫСОТЫ окна браузера блок остается там, где был раньше, а не идёт дальше.
Может кто писал уже подобный скрипт или видел где-нибудь? Буду благодарен любой подсказке.
  • Вопрос задан
  • 246 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
Задайте координаты в процентах или vh - тогда блок будет двигаться автоматически, или пересчитывайте при window.resize
Ответ написан
serjikz
@serjikz
web-developer
У вас наверно в px позиционирование сверху. Оно будет всегда неподвижным если вы так задали, потому что top всегда считается от верхней части родителя (будь то body или relative), а они будут стоять соответственно всегда на своём месте вне зависимости от окна браузера (верхняя граница на своём месте)

Коряво объяснил, поздно уже, спать охота. Мож кто может - объяснит лучше.

Если вам хочется поменять расположение элемента при меньшем окне - попробуйте использовать % вместо px в указаниях top. Если нужно менять под конкретный размер экрана - стоит посмотреть на @ media запросы в CSS. JS в вашем случае думаю не нужен совсем. К примеру при max-height: 700px делать у определенного элемента top больше/меньше ну и тп.
Ответ написан
@Cyber_bober
если вы пытаетесь сделать вертикальное центрирование внутри контейнера то
top:50%;
margin-top: -(высота объекта деленная на два);


а вообще код и цель и в студию, ясновидцы на другой ветке тусят)
Ответ написан
Комментировать
stranger2015
@stranger2015
Писатель. Сайтостроитель-любитель
1) про % Вам уже написали - задавайте координаты не в px, а в %
2) если так уж хочется менять стили из JavaScript - все стили содержатся в свойстве style - например, elem.style.color="#561714";
elem - Ваш элемент
Эта операция в JavaScript равносильна CSS-правилуcolor: #561714
(строго говоря, добавлению атрибута style="color: #561714" к Вашему HTML-элементу)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы