Как определить, какие элементы видны в переполненном

По сути, я пытаюсь реализовать систему, которая ведет себя аналогично панели чтения, встроенной в интерфейс Google Reader.

Если если вы его не видели, Google Reader представляет каждую статью в отдельном поле и при прокрутке выделяет текущее поле (и отмечает статью как прочитанную). В дополнение к этому, вы можете перемещаться вперед или назад по списку статей, нажимая кнопки «предыдущий» и «следующий» в пользовательском интерфейсе.

Я в основном понял, как выполнять большую часть функций. Однако я не уверен, как я могу определить, какой из моих div в настоящее время отображается на прокручиваемой панели.

У меня есть div, для которого установлено значение overflow: auto. Внутри этого div есть другие div, каждый из которых содержит часть содержимого. Я использовал следующий плагин jquery, чтобы все прокручивалось по нажатию кнопки «следующий» или «предыдущий», и он работает как шарм:

http://demos.flesler.com/jquery/serialScroll/

Но я не могу сказать, какой div имеет «фокус» на прокручиваемой панели. Я хотел бы иметь возможность сделать это по двум причинам.

  1. Я ' Я хочу выделить элемент, который пользователь в данный момент читает (аналогично Google Reader). Мне нужно сделать это независимо от того, использовали ли они плагин для доступа или полосу прокрутки браузера.

  2. Мне нужно указать плагину, какой элемент находится в фокусе, чтобы мой вызов для прокрутки к «следующей» панели фактически использовал текущую просматриваемую панель (а не только предыдущую панель, с которой плагин прокручивал).

Я пробовал поискать, но не могу придумать, как это сделать. Я нашел много способов прокрутки к определенному элементу, но я не могу найти способ определить, какой элемент отображается в переполненном div. Если я смогу определить, какие элементы видны, я смогу (вероятно) выяснить все остальное.

Я использую jquery, если это помогает. Спасибо!

6
задан jjross 4 January 2011 в 23:49
поделиться