Divприкрепить к низу когда его нижняя граници достигнет нижней части экрана
На Экране два длинных div расположенных слева и справа.
Они имеют разную длину из-за содержащего контента. Задачи при с скролинге вниз в момент когда более короткий Div достигнет нижней части экрана прикрепить его к низу а второй продолжает скролиться до своего окончания. |
Вложений: 1
Вот схема как должно работать
|
Слушаешь событие scroll у document, когда document.body.scrollTop оказывается больше, чем block.offsetTop + block.offsetHeight, меняешь его css свойства: position:fixed, bottom:0.
Можно иначе определелять положение блока относительно viewport: block.getBoundingClientRect.bottom > 0. А scrollTop в разных браузерах должен быть разный. Хотя можно заменить на window.scrollY - работает почти везде. |
Пока не срабатывает
<style> .fixed { position: fixed; bottom: 10px; /*здесь указываем отступ сверху*/ left:510px; z-index: 9999; /*устанавливаем блок поверх всех элементов на странице*/ } </style> <div class="wrapper clearfix"> <!-- Coln-left --> <div class="coln-left"> </div> <!-- Coln-left #END /--> <!-- Content --> <div class="content"> </div> <!-- Content #END /--> </div> <script>//<![CDATA[ $(function(){ var topPos = $('.content').offsetTop() + $('.content').height(); //topPos - это значение от верха блока до окна браузера $(window).scroll(function() { var top = $(document).scrollTop(); if (top < topPos) $('.floating').addClass('fixed'); else $('.floating').removeClass('fixed'); }); }); //]]></script> |
Цитата:
|
Ошибся чутка. Нужно сравнивать не scrollTop, а scrollTop + window.innerHeight - то есть нижняя видимая ордината документа.
Цитата:
|
runyugin,
:-? <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style> .content.fixed { position: fixed; bottom: 10px; /*здесь указываем отступ сверху*/ left:510px; z-index: 9999; /*устанавливаем блок поверх всех элементов на странице*/ } .coln-left{ position: absolute; left: 0px; width: 100px; height: 1500px; background: #009933; border-bottom: #CC33CC 5px solid; } .content{ position: absolute; left: 510px; width: 100px; height: 1200px; background: #3399FF; border-bottom: #CC33CC 5px solid; } </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function(){ var topPos = $('.content').offset().top + $('.content').height(); //topPos - это значение от верха блока до окна браузера $(window).scroll(function() { var top = $(this).scrollTop()+ $(this).height(); if (top > topPos) $('.content').addClass('fixed'); else $('.content').removeClass('fixed'); }); }); </script> </head> <body> <div class="wrapper clearfix"> <!-- Coln-left --> <div class="coln-left"> </div> <!-- Coln-left #END /--> <!-- Content --> <div class="content"> </div> <!-- Content #END /--> </div> </body> </html> |
Цитата:
|
Часовой пояс GMT +3, время: 01:21. |