Кажется, вам нужно взять $foo.position()
и затем настроить, добавив $container
scrollTop()
и scrollLeft()
.
Это раздражает, если вы на самом деле не знаете, что $foo
относительный контейнер.Я прибег к написанию функции (в CoffeeScript ):
$.fn.container: ->
$parent: @parent()
if $parent.css('position') is 'relative'
return $parent
else
return $parent.container()
Есть ли более прямой способ, который я пропускаю?Или прямой способ найти позиции полосы прокрутки контейнера произвольного элемента?
[ Обновление: Прочитав ответ и комментарии Габи, я создал небольшой плагин jQuery, который проходит через всех родителей элементаи добавляет их scrollTop()
и scrollLeft()
к элементу position()
.Я не проверил это полностью, поэтому, пожалуйста, попробуйте и дайте мне знать, если он работает для вас: плагин jqPositionWithScrolling
Немного странно, что position()
не делает этого автоматически- Я бы осмелился назвать это ошибкой.]