Показать сообщение отдельно
  #5 (permalink)  
Старый 04.01.2014, 18:49
Новичок на форуме
Отправить личное сообщение для slon_js Посмотреть профиль Найти все сообщения от slon_js
 
Регистрация: 04.01.2014
Сообщений: 3

Сообщение от danik.js Посмотреть сообщение
Если элементы разной высоты то только поочередным опросом element.getBoundingClientRect() и проверкой входит ли его rect в видимую область (viewport).
Если элементы одинаковые по высоте, то все сводится к простой арифметике.
Спасибо огромное! Натолкнули куда нужно!
Еще немного гугла, и получилось вот что:

function inWindow(s){
var scrollLeft = $(window).scrollLeft();
var windowWidth = $(window).width();
var currentEls = $(s);
var result = [];
currentEls.each(function(){
var el = $(this);
var offset = el.offset();
if(scrollLeft <= offset.left && (el.width() + offset.left) < (scrollLeft + windowWidth))
result.push(this);
});
return $(result);
}
Ответить с цитированием