Как выглядит JQuery событие, которое реагирует на попадение контента в зону видимости?

Итак, моя цель - это начало анимации при попадении определенного div'а в зону видимости пользователя. Существует-ли такое событие JQuery? Как оно выглядит?)
  • Вопрос задан
  • 3846 просмотров
Решения вопроса 1
rodweb
@rodweb
Front-end разработчик
Есть плагин, который отслеживает попадание элементов во viewport: https://github.com/xobotyi/jquery.viewport
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@aterentyev
Использую вот такое расширение jQuery для проверки видимости элемента на экране (добыто где то на просторах stackoverflow):
$.fn.isOnScreen = function(){
    var viewport = {};
    viewport.top = $(window).scrollTop();
    viewport.bottom = viewport.top + $(window).height();
    var bounds = {};
    bounds.top = this.offset().top;
    bounds.bottom = bounds.top + this.outerHeight();
    return ((bounds.top <= viewport.bottom) && (bounds.bottom >= viewport.top));
};


Пример использования с underscore.js:

var isVisible = function(){
   return $('#selector').isOnScreen() // true or false
};

window.addEventListener('scroll', _.debounce(isVisible, 300), false);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы