Сворачивание sidebar при прокрутке

#1 11 мая 2013 в 21:35
Вроде бы, давным-давно, создавалась тема с пожеланием убирать sidebar при прокрутке, если в нем ничего не выводится.
Решение никто не опубликовал, вроде бы… Тему не нашел. Если баян, не пинать joke

Если кому пригодится, вынесу код на обсуждение…
#2 11 мая 2013 в 22:20
Пригодилось бы, у меня даже код где то был, но он только для темы дефолтной, а пояснений как подгонять под другие позиции нету.То есть если позиции называются по другому то тогда код не срабатывает.
#3 12 мая 2013 в 00:41
Евгений, очень прикольная штучка, если есть возможность поделиться — делитесь.
Спасибо!
#4 12 мая 2013 в 09:24
Вод код, вставить после тега <body>
  1.  
  2. <script type="text/javascript">
  3. $(function() {
  4. var ptop = $("#sidebar").offset().top;
  5. var ptop2 = $("#sidebar").height();
  6. var itogo = ptop + ptop2;
  7. $(window).scroll(function(){
  8. var scrollTop = $(window).scrollTop();
  9. if(scrollTop >= itogo){
  10. $("#sidebar").css("display","none");
  11. $("#main").removeClass("grid_8").addClass("grid_12");
  12. }
  13. else
  14. {
  15. $("#main").removeClass("grid_12").addClass("grid_8");
  16. $("#sidebar").css("display","block");
  17. }
  18. });
  19. });
  20. </script>
  21.  
#5 12 мая 2013 в 10:01

Вод код, вставить после тега <body>

st.Puh
да, совершенно верно :)
просто код быдловатый😊может кто приберет…
#6 12 мая 2013 в 10:07
var ptop = $("#sidebar").offset().top; — узнаем сколько от слоя с id sidebar до верха экрана.
var ptop2 = $("#sidebar").height(); — узнаем высоту слоя id sidebar
var itogo = ptop + ptop2; — складываем, теперь мы знаем где заканчивается sidebar
if(scrollTop >= itogo){ — если прокрутили больше, то
$("#sidebar").css("display","none"); — прячем сайдбар
$("#main").removeClass("grid_8").addClass("grid_12"); — убираем старый класс, добавляем новый, чтобы контент стал на всю ширину
else — если прокрутили меньше высоты сайдбара, его нужно вернуть
$("#main").removeClass("grid_12").addClass("grid_8"); — убираем новый класс, возвращаем старый
$("#sidebar").css("display","block"); — возвращаем видимость сайдбару

У кого свои шаблоны, правьте имена классов и id слоев…
#7 12 мая 2013 в 12:37
Даааа, несколько прикольчиков можно соорудить.
Спасибо!
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.