Прокрутите до определенного места с помощью Dojo ContentPanel

Приложение My Dojo использует несколько областей содержимого для отображения различных битов информации. На главной панели много прокручиваемых данных. Мне нужно нажимать кнопку, чтобы переходить к определенным местам.

В настоящее время используется:

dojo.byId(iid).scrollIntoView();

Это работает отлично, за исключением того, что, похоже, вычисление основывается на верхней части окна браузера, а не на верхней части панели содержимого. Поскольку моя панель содержимого НЕ находится в верхней части страницы (сверху находится панель инструментов высотой 50 пикселей), DIV, который я прокручиваю, тоже на 50 пикселей выше.

Что-то вроде этого могло бы работать, но scrollBy применяется только к окну:

dojo.byId(iid).scrollIntoView();   //Scroll to div in quesiton
dojo.byId(iid).scrollBy(0,50);   //scroll down 50px more to account for panes offset from window.

Фон всего приложения: Приложение использует несколько dijit.layout.BorderContainer для верстки. Пользователь может щелкнуть левое дерево, чтобы вызвать событие на правой панели. Если они нажимают на «Цель», я динамически создаю все узлы DOM на правой панели, а затем пытаюсь прокрутить до выбранного элемента. Часть прокрутки работает для верхнего и нижнего узлов, но смещена для средних узлов.

Screen shot of complete app

Illustration of my issue

5
задан Bitwize 22 February 2011 в 21:02
поделиться