2015-02-08 82 views
0

我以前問過這個問題,但還是不成功。希望有人現在可以幫助我......在小提琴中,您會看到一個響應式菜單,當菜單項大於1000像素時,它有4個水平內嵌的菜單項。小於1000px的菜單顯示一個nav-btn(現在是一個RED盒子!),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 2015-02-08 14:20:03

+0

使用這樣的[響應資產淨值(HTTP ://codepen.io/TimRuby/pen/kLGic) – NMindz 2015-02-08 14:22:04

+0

謝謝,但我必須重建一切。它必須簡單地通過JavaScript來實現,例如:'$(window).resize(function(){if(w> 1000 && nav.is(':block')){nav.removeAttr('style'); } });'但是我不是一個javascript主... – KP83 2015-02-08 14:27:30

1

好添加新的媒體查詢,問題是,你的fadeToggle設置您nav > ulstyle="display: none"。樣式設置直接覆蓋任何樣式表,除非您使用!important。

因此,與NMindz答案相結合,試試這個:

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

你也可以嘗試純CSS的解決方案,可能會更好。喜歡的東西

nav ul.show { 
    display: block; 
} 

而對於JavaScript的

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

感謝這兩個工作,但你如何得到一個fadeToggleClass與JavaScript版本的300轉換?哪種解決方案是您認爲最好的解決方案? – KP83 2015-02-08 14:35:46

+0

好吧,我傾向於將所有更改放入css類中,然後通過javascript在css類之間切換各種狀態。當使用jQuery動畫時,事物會放入'style =「」'中,這可能無法像使用基於CSS的媒體一樣工作。由於css轉換不適用於顯示,所以轉換稍微困難一些。但是,您可以改爲不透明。 – Dellkan 2015-02-08 14:39:18

+0

好,所以不是媒體查詢,你知道如何添加一個fadeToggleClass它是否存在,因爲它不會工作。 – KP83 2015-02-08 14:42:36

相關問題