Ответ 1
Функция css() возвращает значение указанного свойства css, о котором сообщает браузер. В результате, это браузер специфический и не должен использоваться при работе с длинами и позиционированием таким образом.
Во время работы с ползунком jQuery UI я в основном отлаживал хром. Мне нужно, чтобы диапазон имел предел, поэтому я бы взял левую позицию одной из таких дескрипторов:
$el.css('left');
Который дал бы мне левую позицию в процентах: 84%
. Однако, когда я тестировал в Firefox, он возвращал значение в пикселях.
Кто-нибудь испытал это раньше? Основываясь на просмотре DOM в Firebug, Firefox распознает позиционное позиционирование на основе процентов, но, похоже, оно не возвращает это значение. Это поведение по умолчанию для Firefox? Это то же самое в IE?
Функция css() возвращает значение указанного свойства css, о котором сообщает браузер. В результате, это браузер специфический и не должен использоваться при работе с длинами и позиционированием таким образом.
Я не считаю, что существуют какие-либо известные отличия для позиционирования с jQuery с последней версии 1.4.4.
Я использовал плагин в прошлом: http://plugins.jquery.com/project/dimensions
используйте $el.position().left;
вместо:)
Я работал над этой проблемой, обратившись непосредственно к DOM, например:
$el.get(0).style.left
он возвращает значение% для FF, Chrome, Safari и IE9. (Не тестировал его в Opera, хотя)