2015-02-08 3 views
0

Я спрашивал об этом раньше, но все еще не удалось. Надеюсь, кто-то может мне помочь сейчас ... В скрипке вы увидите отзывчивое меню, в котором есть 4 пункта меню горизонтально, когда оно больше 1000 пикселей. Менее чем 1000px меню показывает nav-btn (теперь RED box!), Который onclick показывает элементы меню, но при открытии и закрытии и изменении размера до более 1000 пикселей остальные 3 элемента меню не отображаются. Я сделал несколько тестов со средствами массовой информации, но я думаю, что решение должно быть найдено в части javascript. Любой может справиться с этим вызовом?Ответственность за исчезновение решения после открытия/закрытия

Здесь FIDDLE

$(function() { 
$('.nav-btn').click(function(event) { 
$('nav ul').fadeToggle(300); 
}); 
}); 

ответ

0

Вы могли бы хотеть, чтобы добавить новый медиа-запрос, как я сделал здесь @FIDDLE

@media all and (min-width: 1000px) { 
    nav ul { 
    display: block; 
    top: 60px; 
    } 
} 
+0

Спасибо, но я сделал это, прежде чем он не делает ничего, я сводит меня с ума ... – KP83

+0

использовать что-то вроде этого [Отзывчивый Nav] (HTTP : //codepen.io/TimRuby/pen/kLGic) – NMindz

+0

спасибо, но мне нужно перестроить все. Это должно быть просто через javascript что-то вроде: '$ (window) .resize (function() { if (w> 1000 && nav.is (': block')) { nav.removeAttr ('style'); } }); 'Но я не мастер javascript ... – KP83

1

Ну, проблема в том, что ваш fadeToggle устанавливает ваш nav > ul в style="display: none". Стили устанавливаются непосредственно над любыми таблицами стилей, если вы не используете! Important.

Таким образом, и в сочетании с NMindz ответ, попробуйте это:

@media all and (min-width: 1000px) { 
    nav ul { 
    display: block !important; 
    top: 60px; 
    } 
} 

Вы также можете попробовать чистый CSS решение, которое, вероятно, будет лучше. Что-то вроде

nav ul.show { 
    display: block; 
} 

И для яваскрипта

$(function() { 
    $('.nav-btn').click(function(event) { 
     $('nav ul').toggleClass("show"); 
    }); 
}); 
+0

Спасибо, оба работают, но как вы получаете fadeToggleClass с переходом 300 для версии javascript? Какое решение лучше всего использовать? – KP83

+0

Ну, я предпочитаю, чтобы все изменения были внесены в классы css, а затем переключились между различными состояниями с помощью классов CSS через javascript. При использовании jquery-анимации вещи помещаются в 'style =" "', что, скорее всего, не будет работать так, как вы хотели бы, используя css на базе css. Переход немного сложнее, так как переход css не работает. Однако вместо этого вы можете сделать непрозрачность. – Dellkan

+0

ОК, а не медиа-запрос, знаете ли вы, как добавить fadeToggleClass, существует ли он так, потому что он не будет работать. – KP83

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