Skocz do zawartości

Poprawa responsywnego menu w JQuery (SlideUp, SideDown)


Marysia120
 Udostępnij

Rekomendowane odpowiedzi

Cześć potrzebuje poprawy krótkiego kodu JS od responsywnego menu w JQuery (SlideUp, SideDown). Chodzi oto, że gdy usunę 

if($("nav ul").hasClass("show")){

 to wtedy działa mi

<a href"xxx"></a> 

czyli mogę kliknąć i mnie przeniesie do xxx, a gdy tego nie usunę to mi nie działa.

Dobra wydaję się proste usuń go, ale.... Gdy go usunę to mam scroll czyli po zjechaniu na dół menu się zmienia itd. I gdy ten kod jest to działa ten scroll a jak go usunę to nie działa.

Cały kod:

Cytuj

    //Menu RWD
    $("#menuToggle").click(function(){
        if($("nav ul").hasClass("show")){
        alert($("p").hasClass("intro"));
            $("nav ul").removeClass("show").slideUp();
        }
        else{
            $("nav ul").addClass("show").slideDown();
        }
    });

});
 

Odnośnik do komentarza
Udostępnij na innych stronach

@blacklce takie coś mam serio..  Gdybym miała to bym tutaj wysłała 

Teraz, BlackIce napisał:

Nie, to na pewno nie jest cały kod. Ten, nawet nie jest odpowiedzialny za przesuwanie strony.

a cały JS wygląda tak: 

Cytuj

$(function () {

    //Aktywacja i ustawienia galerii slick
    $(".slider").slick({
        infinite: true,
        slidesToShow: 1,
        slidesToScroll: 1,
        autoplay: true,
        dots: false,
        arrows: false
    });
    
    //Scroll do danej sekcji
    var root = $("html, body");
    $("nav").find("a").click(function(e) {
        if($("nav ul").hasClass("show")){
            $("nav ul").slideUp("show");
        }        
        
        e.preventDefault();
        var section = $(this).attr("href");
        root.animate({
            scrollTop: $(section).offset().top
        }, 750);
        
    });    

    //Zmiana stylu menu
    $(window).scroll(function (event) {

        var scroll = $(window).scrollTop(),$menu = $("nav");

            if (scroll > 10){
                
                $menu.addClass('scrolled');
            }
            else{
                $menu.removeClass('scrolled');
            }

    });
    
    //Menu RWD
    $("#menuToggle").click(function(){
        if($("nav ul").hasClass("show")){
            $("nav ul").removeClass("show").slideUp();
        }
        else{
            $("nav ul").addClass("show").slideDown();
        }
    });

});

Edytowane przez Jcoais
Odnośnik do komentarza
Udostępnij na innych stronach

  • Ekspert

Zamień to:

e.preventDefault();
var section = $(this).attr("href");
root.animate({
  scrollTop: $(section).offset().top
}, 750);

na to:

e.preventDefault();
var url = $(this).attr("href");
var section = url.hash;
if($(section).length) {
  root.animate({
    scrollTop: $(section).offset().top
  }, 750);
}
else {
  window.location = url;
}
Edytowane przez BlackIce
Odnośnik do komentarza
Udostępnij na innych stronach

Teraz to nic nie działa po dodaniu tego wyżej. Mój kod jak coś: 

Cytuj

$(function () {

    //Aktywacja i ustawienia galerii slick
    $(".slider").slick({
        infinite: true,
        slidesToShow: 1,
        slidesToScroll: 1,
        autoplay: true,
        dots: false,
        arrows: false
    });
    
    //Scroll do danej sekcji
    var root = $("html, body");
    $("nav").find("a").click(function(e) {
        if($("nav ul").hasClass("show")){
            $("nav ul").slideUp("show");
        }        
        
        e.preventDefault();
        var section = $(this).attr("href");
        root.animate({
            scrollTop: $(section).offset().top
        }, 750);
        
    });    

    //Zmiana stylu menu
    $(window).scroll(function (event) {

        var scroll = $(window).scrollTop(),$menu = $("nav");

            if (scroll > 10){
                
                $menu.addClass('scrolled');
            }
            else{
                $menu.removeClass('scrolled');
            }

    });
    
    //Menu RWD
    $("#menuToggle").click(function(){
        if($("nav ul").hasClass("show")){
            $("nav ul").removeClass("show").slideUp();
        }
        else{
            $("nav ul").addClass("show").slideDown();
        }
    });

});
 

@BlackIce

Odnośnik do komentarza
Udostępnij na innych stronach

Problem wciąż nierozwiązany? Dodaj swoją odpowiedź

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto. Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
 Udostępnij

×