Выберите раскрывающееся меню для навигации при сворачивании

Мне не нравится свернутая 3-строчная навигационная кнопка, когда бутстрап сворачивается для меньших окон просмотра. Есть ли способ свернуть навигационную панель в раскрывающееся меню выбора, а также разместить его где-нибудь еще на странице, кроме как в правом верхнем углу? Вот так: http://filamentgroup.com/examples/rwd-nav-patterns/


person devhead    schedule 29.11.2012    source источник
comment
возможный дубликат преобразовать вкладки начальной загрузки Twitter в меню выбора   -  person Justin Johnson    schedule 02.12.2012


Ответы (1)


Глядя на то, что происходит на сайте filamentgroup, вы можете видеть, что ниже определенной ширины тело получает класс nav-menu и удаляется, если размер больше. Это их rwd-nav.js с комментариями:

jQuery(function($){
$('.nav-primary')
  // test the menu to see if all items fit horizontally
  .bind('testfit', function(){
    var nav = $(this),
     items = nav.find('a');

    $('body').removeClass('nav-menu');                    

    // when the nav wraps under the logo, or when options are stacked, display the nav as a menu              
    if ( (nav.offset().top > nav.prev().offset().top) || ($(items[items.length-1]).offset().top > $(items[0]).offset().top) ) {

       // add a class for scoping menu styles
       $('body').addClass('nav-menu');
    };                    
 })

 // toggle the menu items' visiblity
 .find('h3')
   .bind('click focus', function(){
      $(this).parent().toggleClass('expanded')
   });   

   // ...and update the nav on window events
   $(window).bind('load resize orientationchange', function(){
   $('.nav-primary').trigger('testfit');
 });

});

Затем в их rwd-nav.css это изменяется в зависимости от ширины

/* Media queries
------------------------------ */

@media screen and (min-width: 640px) {
  .nav-primary,
  .nav-primary ul {
    float: left;
  }
  .nav-primary ul {
    float: left;
  }
  .nav-primary li {
    float: left;
    font-size: 1.5em;
    border-bottom: 0;
  }   
}

@media screen and (min-width: 910px) {
  .nav-primary {
    float: right;
    clear: none;
  }   
}

Надеюсь, это поможет!

person Archonic    schedule 10.01.2013