2017-02-12 2 views
0

Ich mache Speck Menü für kleine Bildschirme. Ich muss das Menü initialisieren, ohne Menüverknüpfungen anzuzeigen, also verstecke ich sie mit jQuery. Das Problem ist, dass auf dem großen Bildschirm Menü-Links immer noch versteckt sind und ich möchte nicht, dass das passiert.CSS-Regel für kleinen Bildschirm mit jQuery ändern

Ich benutze diesen Code Menü Link Entfernung auf großen Bildschirmen zu vermeiden, aber es funktioniert nicht:

scripts.js

 $(window).resize(function(){  
     if ($(window).width() > 720){ 
      $('ul.menu').css('display', 'none'); 
     } else { 
      $('ul.menu').css('display', 'inline-block'); 
      // $(this).toggleClass('is-active'); 
     } 
     }); 

     //$('ul.menu').css('display', 'none'); 
     $('#menuButton').click(function(){ 
     $(this).toggleClass('is-active'); 
     if ($(this).hasClass('is-active')) { 
      $('ul.menu').css('display', 'block'); 
     } 
     else { 
      $('ul.menu').css('display', 'none'); 
     } 
     }); 

SASS

.menu 
     li 
     display: block; 
     text-align: center; 
     background-color: #fff; 
     @include media($medium-screen-up) 
     list-style-type: none 
     display: inline-block 
     float: right; 
     margin: 0 10px 0 10px 
     @include position(relative, -50px null null null) 
     background-color: initial; 
+1

Verwenden Sie JavaScript nicht die Art zu ändern, je nach Bildschirmgröße, verwenden Sie Medienabfragen. Verstecken Sie Ihr Menü auf kleinen Bildschirmen, aber erzwingen Sie es, wenn der Benutzer auf die Schaltfläche klickt. Sie sollten eine Klasse umschalten, anstatt die Eigenschaft "display" direkt aus dem JavaScript zu ändern. – LeBen

Antwort

0

gelöst. Ich verstecke Menü Links auf kleinen Bildschirm, aber zeigen sie auf große Leinwand:

.menu 
    li.menu-item 
    display: none; 
    text-align: center; 
    background-color: #fff; 
    .is-active 
    display: block !important 
@include media($medium-screen-up) 
    li.menu-item 
    list-style-type: none 
    display: inline-block !important 
    float: right; 
    margin: 0 10px 0 10px 
    @include position(relative, -50px null null null) 

Dann mit jQuery I Klasse für Menü-Links hin- und herschalten:

// Burger menu for small screen 
    $('#menuButton').click(function(){ 
    $(this).toggleClass('is-active'); 
    $('li.menu-item').toggleClass('is-active'); 
    $('ul.menu').toggleClass('is-active'); 
    }); 
Verwandte Themen