#javascript #jquery #css
#javascript #jquery #css
Вопрос:
У меня есть div, свойство «position» которого является «абсолютным».
var a = $(div).first();
a.animate({top:20});
a.css("top");
>>"20px"
a.position().top;
>>15.243560791015625
Что произошло? .position()
Выдает мне позицию относительно первого позиционированного предка. Разве это не было бы таким же, как позиция css?
Редактировать: или, может быть, я задаю другой вопрос. Как я могу вызвать .animate
, чтобы создать.position().top === 20?
Правка2: обнаружена ошибка. Это «повернуть».
Правка 3: по какой-то причине, ui.position()
обратный вызов плагина пользовательского интерфейса jQuery работает как .css("top")
, не .position()
. Хотя у них одинаковые имена.
Комментарии:
1. .css(‘position’) ссылается на свойство CSS. .position() ссылается на координаты элемента на странице.
2. ДА. Но почему они разные?
3. когда позиция css «абсолютна», «вершина» находится относительно ее ближайшего позиционированного предка, верно? И .position() возвращает относительную позицию к своему ближайшему расположенному предку?
4. @Lai Не могли бы вы опубликовать jsfiddle? Для меня это работает довольно хорошо…
5. jsfiddle.net/PWhQV/2 Для меня этот jsfiddle работает просто отлично. Вы случайно не запускали вторую инструкцию в середине анимации?
Ответ №1:
jQuery position
относится к родительскому смещению (источнику). Использование jQuery offset
относится к документу (источнику), который должен выдавать тот же номер, если ваш элемент имеет фиксированную позицию
Комментарии:
1. пытается объяснить ваш вопрос и тот факт, что
.position()
речь идет о.offset()
. @antisanity: похоже, что нет.2. Не понимаю.
.offset()
это относительное положение к document..position()
это относительная позиция для смещения родительского элемента. слева от css находится относительная позиция для закрытия позиционированного родительского элемента при ‘position:absolute’. Так почему это о.offset()
?
Ответ №2:
Извините, что потратил ваше время… Я осмотрел свой стиль css и обнаружил проблему.
Проблема вызвана «вращением».
Когда элемент поворачивается, он .position()
был бы изменен, но css нет.
Итак, они разные.
В любом случае, спасибо вам всем за ответы.