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

Почему получаем значение из el.style.left?

Делаю слайдер и знаю что из elem.style получать значение нельзя, только задавать.

и тут
5b8011aab8b39901763349.png

в первом случае NaN и понятно почему (т.к. получать нельзя)
но во втором случае тот же самый код и всё отлично работает.
выдает цифры (пиксели отсеиваем с помощью parseFloat).

Я не понимаю, почему второй вариант работает? ведь я не должен получать как и в первом случае
  • Вопрос задан
  • 544 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
https://learn.javascript.ru/styles-and-classes#чте...
Свойство style содержит лишь тот стиль, который указан в атрибуте элемента, без учёта каскада CSS.


То есть, скорее всего, когда вы второй раз читаете свойство left, вы где то, его указали подобным образом:
elemt.style.left = '20px'

В атрибуте style элемента elem, появится соответствующая запись -> <elem style="left: 20px"> </elem>
И потом вы можете его прочитать оттуда через style.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
читать из style можно, это по сути просто объект
parseFloat возвращает NaN когда не может распарсить число

подозреваю, что в первом случает style.left еще не установлен, а во втором, уже да
хотя правильнее использовать getComputedStyle - ибо объект style содержит только инлайн стили, а getComputedStyle вернет тот стиль, который элемент имеет непосредственно в момент вызова, не зависимо от того как он установлен
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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