Почему jQuery.css('left') и .position() left возвращают разные значения?
Значения, которые я получаю для $(el).css('left')
и $(el).position().left
, различны?
Если я иду $(el).css('left', '100px')
, то $(el).css('left')
он возвращает 110px
вместо 100px
(да, он всегда на 10% больше), и если я оцениваю $(el).position().left
, он дает мне 100
.
Почему Chrome ведет себя так? Вы можете увидеть, как это повлияет на анимацию jQuery, используя свойство left
.
Я использую Chrome 21.0.1180.57 на Ubuntu.
РЕДАКТИРОВАТЬ 1: Кажется, что это касается только Chrome, FF 14.0.1 дает мне одинаковые значения.
Ответы
Ответ 1
left
возвращает вычисленное значение свойства CSS слева.
position().left
возвращает x-координату относительно родителя первого смещения элемента.
Эти значения могут быть равны, и они могут быть не равны.
position().left
также может быть разным между браузерами из-за различного рендеринга, тогда как .css("left")
может различаться только в единицах, если это.
Ответ 2
Попробуйте этот код:
$("#div")[0].style.left