2013-11-24 6 views
1

У меня есть отзывчивое меню, которое я пытаюсь создать с помощью переходов. Я создал один через jsFiddle который можно найти здесь:Отзывчивое меню с CSS3

http://jsfiddle.net/FN37X/

JS Я использую:

$(document).ready(function(){ 
$(".menu-button").click(function() { 
    if ($(".menu").hasClass('close')) { 
      $(".menu").removeClass('close').addClass('open'); 
     } 
    else if ($(".menu").hasClass('open')) { 
      $(".menu").removeClass('open').addClass('close'); 
     } 
}); 
}); 

Мой вопрос,
Можно ли иметь это меню, без кратковременного перехода, который появляется при изменении размера ширины окна.

Моя цель состоит в том, чтобы иметь адаптивное меню, которое скользит вниз без использования CSS важна! (Я нашел с помощью toggleSlide требуется это?

ответ

1

Да, я думаю slideToggle() ваш лучший выбор, так что вы можете также удалить CSS transition что влияет на изменение размеров окна.

В вашем CSS удалить оба .open{} и .close{} стилей, то на вашем .menu добавить display:none и top:50px (высота черного .box-menu).

Тогда ваш сценарий будет:

$(document).ready(function(){ 
    $(".menu-button").click(function(){ 
     $('.menu').slideToggle(); 
    }); 
}); 

Смотрите эту jsfiddle

+0

Проблема с этим, как только вы переключить его, а затем изменить размер окна. Дисплей: none все еще присутствует, поэтому меню не отображается:/ – DavidPottrell

0

Это быстрое решение

$(window).on("resize",function(event){ 
    $(".menu").css("display","none"); 

}) 
$(window).on("debouncedresize",function(event){ 
    $(".menu").css("display","block"); 

}) 

просто включить сценарий изменения размера дребезга в документе: https://github.com/louisremi/jquery-smartresize/blob/master/jquery.debouncedresize.js

его взял меня немного, чтобы найти решение для debounced resize.

http://jsfiddle.net/prollygeek/FN37X/5/

+1

Было бы идеально, но меню кажется мерцающим при изменении размера из-за таймаута? – DavidPottrell

+0

ОК теперь должно работать без мерцания. – ProllyGeek

+0

Я ценю помощь, похоже, сумасшедшее количество кода для такой небольшой «функции»! Вау! – DavidPottrell

Смежные вопросы