Скролл элемента .scroll() + событие
Добрый день уважаемые. Появилась необходимость задать элементу событие при его скроллинге, а точнее когда пользователь не видет элемента прокручивая страницу. Вроди бы детский вопрос, но я где-то недопонимаю.
Приведу пример <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> </head> <style type="text/css"> .field{ border: 1px solid #000; width: 800px; height: 1800px; } .block{ margin: 10%; width: 50px; height: 50px; background-color: red; } </style> <body> <div class="field"> <div class="block"></div> </div> </body> <script type="text/javascript"> window.onload = function () { $("body").scroll(function() { var coord = $('.block').offset().top; if ($('.block').offset().top == 0) { console.log("Елемента больше не видно в браузере"); } else { console.log("Елемент снова в браузере виден"); } }); } </script> </html> Почему оно не срабатывает? Мне необходимо что б при исчезновение нижней грани элемента из области видимости отписывало сообщение в консоль, при появлении отписывало второе сообщение :help: |
Цитата:
А если продолжить твой пример - видно и остальное. ;) <!DOCTYPE html> <html lang="en"> <head> <title>Document</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> </head> <style type="text/css"> .field{ border: 1px solid #000; width: 800px; height: 1800px; } .block{ margin: 10%; width: 50px; height: 50px; background-color: red; } #test { position: fixed; top: 10px; right: 10px; width: 30px; border: 1px solid; } </style> <body> <div id="test"></div> <div class="field"> <div class="block"></div> </div> <script type="text/javascript"> window.onload = function () { window.onscroll=function() { var coord = $('.block').offset().top; $('#test').text(coord); if (coord == 0) { console.log("Елемента больше не видно в браузере"); } else { console.log("Елемент снова в браузере виден"); } }; }; </script> </body> </html> |
Часовой пояс GMT +3, время: 03:26. |