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

Как получить style элемента через js в динамике?

Есть элемент (это слайдер):
<div id='idshka' style="width:20px; top: 200px;>

Причем top динамически меняется постоянно (т.к. в слайдере слайды переключаются, соответственно).

Мне нужно отслеживать атрибут "top" и поймать когда он будет равняться определенному значению (допустим, когда он будет 100px). Скажите, как это сделать?

Сам пробовал так:

(function() {
    var bar = document.getElementById("idshka"), 
      style = bar.style;
      if (style.top == "100") {
    alert("элемент имеет top=100px");
      }
    }());


Но сами понимаете... Во-первых этот скрипт срабатывает только 1 раз при заходе на стр., во-вторых он не работает.
  • Вопрос задан
  • 303 просмотра
Подписаться 1 Оценить 3 комментария
Пригласить эксперта
Ответы на вопрос 2
@BorisKorobkov
Web developer
Ваш код можно запускать по событию (правильно) или по setTimeout (неправильно).
Событие - либо нужный event слайдера (читайте по нему доку), либо onchange на числовом значении слайдера (ползунок то не для красоты, а для изменения конкретного числового поля).

Что хоть за слайдер?
Ответ написан
Комментировать
Браузер, насколько мне известно, не умеет ловить момент изменения style (точнее, не умеет вызывать вашу ф-ию в момент изменения), поэтому варианты такие:
  • Правильный - почитать документацию на слайдер - у правильного слайдера есть параметр, куда можно засунуть вашу ф-ию, которая будет вызываться при переключениях.
  • Вариант "и так сойдёт" - повесить свою ф-ию на таймер (setInterval), в которой проверять с заданной периодичностью стиль.

Проверять, к стати, нужно `style.top == "100px"`, а не `style.top == "100"`.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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