Есть ли способ получить список элементов, которые в данный момент видны в окне просмотра с определенным классом

#javascript #jquery

#javascript #jquery

Вопрос:

В моем документе присутствует более 2000 html-элементов, имеющих класс «abc». Когда я прокручиваю (вверх / вниз) Я хочу, чтобы список элементов html, присутствующих в моем окне просмотра, имел класс ‘abc’, поскольку я хочу выполнить некоторые действия с теми элементами, которые присутствуют в окне просмотра, а не со всеми элементами с классом ‘abc’

Комментарии:

1. может быть, получить список всех элементов $ («.abc») и просто проверить их границы, чтобы увидеть, находятся ли они в окне просмотра?

2. Спасибо @Banana за ответ.. Я. Я уже пробовал это, но иметь список из 2000 элементов, а затем проверять каждый элемент на наличие его в окне просмотра — очень сложная задача с точки зрения производительности. Есть ли какая-либо функция в jQuery / javascript, которая может мне помочь в этом?

Ответ №1:

вы можете использовать плагин Viewport отсюда: http://www.appelsiini.net/projects/viewport

вот ссылка для его загрузки с их github: Viewport.js

использование этого плагина очень просто, чтобы найти все .abc элементы внутри окна просмотра, которые вы просто добавляете :in-viewport в свой селектор:

 $('.abc:in-viewport');
  

вот живая демонстрация: Fiddle

Ответ №2:

Я создал класс Viewport только для этой цели: https://github.com/gburghardt/viewport

У него также есть псевдособытия, когда пользователь прекращает прокрутку и когда меняется ориентация при изменении окна просмотра. Удобно для мобильных устройств.