Advertisement
Guest User

Untitled

a guest
Aug 30th, 2016
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. var timer = 0,
  2.  
  3. //"самописный" селектор выбирает все элементы на экране, между "верхом" и "низом"
  4. //(горизонтаьная прокрутка не учитывается, но можно дописать по-аналогии)
  5. (function(){
  6. $.belowthefold = function(element) {
  7. var fold = $(window).height() + $(window).scrollTop();
  8. return fold <= $(element).offset().top;
  9. };
  10.  
  11. $.abovethetop = function(element) {
  12. var top = $(window).scrollTop();
  13. return top >= $(element).offset().top + $(element).height();
  14. };
  15.  
  16. $.inviewport = function(element) {
  17. return !$.belowthefold(element) && !$.abovethetop(element);
  18. };
  19.  
  20. $.extend($.expr[':'], {
  21. "inViewport": function(a){return $.inviewport(a);}
  22. });
  23. })(),
  24.  
  25. handler = function(){
  26. var inViewportList = $('div:inViewport'); //набор элементов, видимых в окне браузера
  27. //делайте с ними что хотите
  28. //ваш код
  29. };
  30.  
  31.  
  32. handler();
  33.  
  34. //вызывает "handler" с задержкой (500 мс) после "каждого скролла"
  35. //если успел прокрутить дальше, то обрабатывается только "второй скролл" и т.д.
  36. //очень удобно - меньше вычислений - меньше нагрузка на браузер
  37. $(window).scroll(function(){
  38. if(timer){
  39. clearTimeout(timer);
  40. timer = 0;
  41. }
  42. timer = setTimeout(handler, 500);
  43. });
  44.  
  45. var elem = document.getElementsByClassName('invest');
  46. var sourceBottom = elem[0].getBoundingClientRect().bottom + window.pageYOffset;
  47. window.onscroll = function() {
  48. if (window.pageYOffset < sourceBottom) {
  49. alert("Вижу див");
  50. }
  51. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement