Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var timer = 0,
- //"самописный" селектор выбирает все элементы на экране, между "верхом" и "низом"
- //(горизонтаьная прокрутка не учитывается, но можно дописать по-аналогии)
- (function(){
- $.belowthefold = function(element) {
- var fold = $(window).height() + $(window).scrollTop();
- return fold <= $(element).offset().top;
- };
- $.abovethetop = function(element) {
- var top = $(window).scrollTop();
- return top >= $(element).offset().top + $(element).height();
- };
- $.inviewport = function(element) {
- return !$.belowthefold(element) && !$.abovethetop(element);
- };
- $.extend($.expr[':'], {
- "inViewport": function(a){return $.inviewport(a);}
- });
- })(),
- handler = function(){
- var inViewportList = $('div:inViewport'); //набор элементов, видимых в окне браузера
- //делайте с ними что хотите
- //ваш код
- };
- handler();
- //вызывает "handler" с задержкой (500 мс) после "каждого скролла"
- //если успел прокрутить дальше, то обрабатывается только "второй скролл" и т.д.
- //очень удобно - меньше вычислений - меньше нагрузка на браузер
- $(window).scroll(function(){
- if(timer){
- clearTimeout(timer);
- timer = 0;
- }
- timer = setTimeout(handler, 500);
- });
- var elem = document.getElementsByClassName('invest');
- var sourceBottom = elem[0].getBoundingClientRect().bottom + window.pageYOffset;
- window.onscroll = function() {
- if (window.pageYOffset < sourceBottom) {
- alert("Вижу див");
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement