Функция смещения jQuerys иногда возвращает рациональные числа (например, 12.645613) для верхнего или левого. Я думал, что верхняя и левая позиции находятся в пикселях и поэтому должны быть целыми (нет половины пикселя или?).
Не целочисленные позиции смещения в jQuery
Ответ 1
Верхнее и левое положения могут быть числами с плавающей запятой с любыми единицами cm, mm, in, pt, pc, em, ex или px или процентами.
Пример:
.someElement { top: 42%; left: 3.14in; }
Функция offset
возвращает позицию, переведенную в пиксели, поэтому вполне может быть число с плавающей запятой. Значения не округлены.
В приведенном примере, если высота родителя составляла, например, 32 пикселя, значение top
элемента было бы равно 32 * 0,42 = 13,44 пикселя.
Ответ 2
Это старый вопрос, но, я думаю, я мог бы разместить здесь ответ, для потомков.
У меня тоже была эта проблема, и я узнал (спасибо Firebug), что проблема заключается в том, что теги h1 и h3 имеют поля с плавающей запятой (например, Firefox по умолчанию дает margin <H1>
a 0.67em 0
).
При удалении тегов <H1>
и <H3>
$(".fixedColumn").eq(0).offset().top
возвращается целое число. Вы можете просто указать поля для этих тегов, и проблема должна быть исправлена.