WebHU - Programozási kérdések és válaszok

funkció visszaállítása reszponzívra

A következő kóddal rendelkezik, amely hozzáadja/eltávolítja a .nav-up és .nav-down fájlokat a görgetési események alapján, kivéve a ‹768 képpontos képernyőkön

forgatókönyv

  function hasScrolled() {
    if($( window ).width() > 768) {
    var st = $(this).scrollTop();
    if (Math.abs(lastScrollTop - st) <= delta)
    return;

    if (st > lastScrollTop && st > navbarHeight ) {

    // Scroll Down
    $('#s-nav').removeClass('nav-down').addClass('nav-up');

    } else {

    // Scroll Up
    if (st + $(window).height() < $(document).height()) {
    $('#s-nav').removeClass('nav-up').addClass('nav-down');
  }
}
lastScrollTop = st;
}
}

html

<nav id="s-nav" class="nav-down"> .... </div>

css

#s-nav { position: fixed; }

#s-nav.nav-up { top: -75px; }

@media screen and (max-width: 768px) {

  #s-nav.nav-up { top: 0; }
}

Amikor azonban mobilról képernyőméretre (reszponzív) képernyőméretre váltunk, a menü „felfelé megy”, mintha görgetnénk az ablakot. Szeretném "visszaállítani" a funkciót, hogy amikor a képernyő mérete csökken, akkor "lefelé" maradjak

02.08.2016

Válaszok:


1

Csak hozzáadhat egy sort, amelyben beállíthatja a kívánt osztályt, amikor $(window).width() <= 768 :

function hasScrolled() {
    if($( window ).width() > 768) {
        var st = $(this).scrollTop();
        if (Math.abs(lastScrollTop - st) <= delta)
            return;

        if (st > lastScrollTop && st > navbarHeight ) {

            // Scroll Down
            $('#s-nav').removeClass('nav-down').addClass('nav-up');

        } else {

            // Scroll Up
            if (st + $(window).height() < $(document).height()) {
                $('#s-nav').removeClass('nav-up').addClass('nav-down');
            }
         }
    }else{
        $('#s-nav').removeClass('nav-up').addClass('nav-down');
    }
    lastScrollTop = st;
}
02.08.2016
  • ez működik, nem tudom pontosan hogyan, de a probléma megoldva! köszönöm 02.08.2016
  • ez azért van, mert amikor az ablak kisebb, mint 768, akkor az #s-nav a 'nav-down' osztályt veszi fel, így ha átméretezed, akkor is megvan ez az osztály, tehát nem megy felfelé! bár nem biztos, hogy egyértelmű-e ;) 03.08.2016
  • Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..