2016-06-30 5 views
1

Mein Responsive-Menü verschwindet, wenn der Bildschirm auf die maximale Breite zurückkehrt. Ich war mit this code aber ich verändert es ein bisschenDas Responsive-Menü verschwindet, wenn die Bildschirmgröße einige Male geändert wird

$(function() { 
    if ($(window).width() < 700) { 
    var menuVisible = false; 
    $('#menuBtn').click(function() { 
     if (menuVisible) { 
     $('#menu').css({'display':'none'}); 
     menuVisible = false; 
     return; 
     } 
     $('#menu').css({'display':'block'}); 
     menuVisible = true; 
    }); 

    $('#menu').click(function() { 
     $(this).css({'display':'none'}); 
     menuVisible = false; 
    }); 
    }else{ 
    menuVisible = true; 
    }; 
}); 
+0

Sie sollten CSS Media Queries für die automatique Breite Sichtbarkeit verwenden. Verwenden Sie JS nur für das Klickereignis – AlexisWbr

+0

Wenn diese Funktion nicht vorhanden ist, wird das Dropdown-Menü standardmäßig beim Durchsuchen einer Seite angezeigt. Es verbirgt sich wie die Hälfte des Bildschirms. – Ivan

Antwort

0

sollten Sie windows resize event verwenden, um Sie wieder aufrufen Funktion das Fenster auf Ändern der Größe

$(window).resize(function(){ 
    if ($(window).width() > 700) { 
     $('#menu').css({'display':'block'}); 
    } 
}) 

ich diese Änderungen an Ihrem Code hier gemacht: https://jsfiddle.net/jfhLmgvc/2/


Dieser Code kann auch einfacher sein, mit einem kleinen CSS wie folgt: https://jsfiddle.net/jmbup8g3/

Das Skript:

$(function() { 
    $('#menuBtn').click(function() { 
    if($(window).width() < 700){ 
     $('#menu').fadeToggle(300); 
    } 
    }); 
    $('#menu').click(function() { 
    if($(window).width() < 700){ 
     $(this).css({'display':'none'}); 
    } 
    }); 
}); 

die CSS:

@media screen and (min-width: 700px) { 
    #menu{display:block !important;} 
} 
Verwandte Themen