Для любопытных мы разделили компонент полосы прокрутки на отдельный swf и поместили набор из двух вложенных элементов div вдоль правой и нижней части виджета.
Используя вертикальную полосу прокрутки в качестве примера, внешний div был установлен на высоту полосы прокрутки и имел CSS overflow-x
, равный hidden
, и overflow-y
, равный auto
. Затем для дочернего элемента div была установлена произвольная ширина и высота, равная высоте в пикселях содержимого полосы прокрутки.
Браузер будет отображать «ручку прокрутки» соответствующего размера, и мы сможем быстро прочитать смещение вертикальной прокрутки на внешнем элементе div, чтобы узнать, как далеко смещается панель прокрутки Flash. Тот же метод с соответствующими изменениями был использован для горизонтальной полосы прокрутки.
Мы также включили некоторую логику для автоматического скрытия контейнеров на основе их переполнения. Результат полностью соответствовал поведению нативной ОС.
Хотя это может показаться огромным взломом, мы смогли широко развернуть решение ( scribd.com ) без каких-либо серьезных проблем.