0Pricing
jQuery Academy · Lekcja

Zaawansowane efekty przełączania i wysuwania

Proszę opanować zaawansowane zastosowania metod .slideToggle(), .fadeToggle() i .animate() do tworzenia płynnych, responsywnych i atrakcyjnych wizualnie efektów pokazywania, ukrywania i przejść.

Zaawansowane efekty przełączania i wysuwania to bezpłatna lekcja jQuery Academy na CoddyKit. To lekcja 3 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej jQuery Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs jQuery Academy zawiera 3 lekcji w sumie.

Witamy w świecie zaawansowanych przełączników!

W tej lekcji przyjrzymy się bliżej zaawansowanym metodom jQuery służącym do tworzenia dynamicznych efektów pokazywania i ukrywania. Opanują Państwo metody .slideToggle() i .fadeToggle(), a także używanie .animate() do tworzenia niestandardowych przejść.

Techniki te są niezbędne do budowania interaktywnych i atrakcyjnych wizualnie interfejsów użytkownika.

Przesuwanie elementów za pomocą slideToggle()

Metoda .slideToggle() animuje wysokość dopasowanych elementów, powodując ich przesunięcie w górę lub w dół. Jeśli element jest widoczny, zostaje przesunięty w górę i ukryty. Jeśli jest ukryty, zostaje przesunięty w dół i pokazany.

Doskonale nadaje się do zwijanych menu lub rozwijanych sekcji treści. Proszę uruchomić ten przykład:

// HTML for context:
// <button id="toggleButton">Toggle Panel</button>
// <div id="myPanel" style="background-color: lightblue; padding: 10px;">
//   <p>This is a sliding panel!</p>
// </div>

$(document).ready(function() {
  $("#toggleButton").click(function() {
    $("#myPanel").slideToggle();
  });
});

Dostosowywanie slideToggle()

Można sterować szybkością animacji .slideToggle(), przekazując czas trwania (w milisekundach albo jako 'slow' lub 'fast'). Można również przekazać funkcję callback, która zostanie wykonana po zakończeniu animacji.

  • .slideToggle(duration)
  • .slideToggle(duration, callback)

Proszę poeksperymentować z szybkością w poniższym kodzie:

// HTML for context:
// <button id="speedToggleBtn">Toggle Fast</button>
// <p id="speedPanel" style="background-color: #e0ffe0; padding: 10px;">
//   I slide fast and then alert!
// </p>

$(document).ready(function() {
  $("#speedToggleBtn").click(function() {
    $("#speedPanel").slideToggle("fast", function() {
      alert("Animation finished!");
    });
  });
});

Pojawianie się i znikanie elementów za pomocą fadeToggle()

Podobnie jak .slideToggle(), metoda .fadeToggle() pokazuje lub ukrywa dopasowane elementy, animując ich krycie. Jeśli element jest widoczny, stopniowo zanika. Jeśli jest ukryty, stopniowo się pojawia.

Tworzy to płynny efekt przejścia z wykorzystaniem przezroczystości. Proszę zobaczyć go w działaniu:

// HTML for context:
// <button id="fadeToggleBtn">Toggle Fade</button>
// <div id="fadePanel" style="background-color: #ffe0e0; padding: 10px;">
//   <p>This panel fades in and out!</p>
// </div>

$(document).ready(function() {
  $("#fadeToggleBtn").click(function() {
    $("#fadePanel").fadeToggle();
  });
});

Dostosowywanie fadeToggle()

Podobnie jak w przypadku .slideToggle(), można dostosować szybkość i dodać funkcję callback do .fadeToggle(). Pozwala to łączyć działania w łańcuch lub wykonywać zadania po zakończeniu zanikania.

  • .fadeToggle(duration)
  • .fadeToggle(duration, callback)

Proszę obserwować powolne zanikanie i zmianę koloru:

// HTML for context:
// <button id="customFadeBtn">Toggle Custom Fade</button>
// <p id="customFadePanel" style="background-color: #e0e0ff; padding: 10px;">
//   I fade slowly and change color!
// </p>

$(document).ready(function() {
  $("#customFadeBtn").click(function() {
    $("#customFadePanel").fadeToggle(1000, function() {
      $(this).css("color", "purple");
    });
  });
});

Łączenie przesuwania i zanikania

Można łączyć .slideToggle() i .fadeToggle(), aby uzyskać bardziej złożone efekty. Na przykład element może jednocześnie przesuwać się w dół i pojawiać, albo odwrotnie.

Wywołane sekwencyjnie, nakładają one swoje efekty jeden po drugim. Jeśli efekty mają wystąpić naprawdę jednocześnie, często lepiej użyć .animate() (tym zajmiemy się za chwilę!).

// HTML for context:
// <button id="mixedToggleBtn">Toggle Mixed</button>
// <div id="mixedPanel" style="background-color: #ffffe0; padding: 10px;">
//   <p>I will slide and fade!</p>
// </div>

$(document).ready(function() {
  $("#mixedToggleBtn").click(function() {
    $("#mixedPanel").slideToggle(500);
    $("#mixedPanel").fadeToggle(500);
  });
});

Prosty przełącznik z animacją

Czy pamiętają Państwo podstawową metodę .toggle()? Po prostu pokazuje ona lub ukrywa element. Może jednak także przyjmować parametry czasu trwania i callbacku, podobnie jak .slideToggle() i .fadeToggle().

Po użyciu parametrów animacji .toggle() domyślnie działa w praktyce jak .fadeToggle().

// HTML for context:
// <button id="simpleToggleBtn">Toggle with Animation</button>
// <p id="simpleTogglePanel" style="background-color: #f0f0f0; padding: 10px;">
//   I toggle with a default fade effect.
// </p>

$(document).ready(function() {
  $("#simpleToggleBtn").click(function() {
    $("#simpleTogglePanel").toggle("slow", function() {
      console.log("Toggle animation done!");
    });
  });
});

Tworzenie niestandardowych efektów przełączania

Aby uzyskać pełną kontrolę, należy użyć metody .animate(). Można za jej pomocą animować liczbowo niemal każdą właściwość CSS. Do tworzenia niestandardowych efektów przełączania można animować właściwości takie jak height, opacity czy nawet left/top.

Kluczowe jest animowanie do określonej wartości lub użycie specjalnego słowa kluczowego 'toggle' dla właściwości takich jak height lub width.

// HTML for context:
// <button id="customAnimateBtn">Custom Animate Toggle</button>
// <div id="customAnimatePanel" style="background-color: lightgreen; padding: 10px; height: 100px; overflow: hidden;">
//   <p>I animate my height to toggle!</p>
// </div>

$(document).ready(function() {
  $("#customAnimateBtn").click(function() {
    $("#customAnimatePanel").animate({
      height: 'toggle' // Animates height to 'toggle' (show/hide)
    }, 500);
  });
});

Jednoczesne niestandardowe animacje

Metoda .animate() pokazuje pełnię swoich możliwości, gdy trzeba jednocześnie zmienić wiele właściwości CSS, aby uzyskać połączony efekt przełączania. Można jednocześnie animować height i opacity, aby uzyskać efekt przesuwania i zanikania.

Jeśli element ma całkowicie zniknąć z układu po animowaniu krycia do wartości 0, należy pamiętać o obsłudze właściwości display.

// HTML for context:
// <button id="combinedAnimateBtn">Combined Toggle</button>
// <div id="combinedAnimatePanel" style="background-color: lightcoral; padding: 10px; height: 100px; opacity: 1; overflow: hidden;">
//   <p>I slide AND fade!</p>
// </div>

$(document).ready(function() {
  $("#combinedAnimateBtn").click(function() {
    var panel = $("#combinedAnimatePanel");
    if (panel.is(":visible")) {
      panel.animate({
        height: '0px',
        opacity: '0'
      }, 500, function() {
        $(this).hide(); // Ensure display: none after animation
      });
    } else {
      panel.show().animate({ // Show first, then animate
        height: '100px',
        opacity: '1'
      }, 500);
    }
  });
});

Sprawdź swoją wiedzę o przełącznikach

Których z poniższych metod jQuery można użyć do utworzenia animowanego efektu pokazywania i ukrywania elementu?

Podsumowanie przełączników i animate

Świetna praca! Opanowali Państwo zaawansowane techniki jQuery służące do tworzenia dynamicznych efektów pokazywania i ukrywania.

  • Omówiliśmy .slideToggle() do pionowego przesuwania.
  • Użyliśmy .fadeToggle() do płynnych przejść krycia.
  • Zobaczyliśmy, że .toggle() również może animować.
  • Co najważniejsze, nauczyli się Państwo używać .animate() do tworzenia całkowicie niestandardowych i połączonych efektów przełączania, zapewniających szczegółową kontrolę nad wieloma właściwościami CSS.

Proszę dalej ćwiczyć, aby tworzyć zachwycające interaktywne interfejsy użytkownika!

Często zadawane pytania

Czy lekcja „Zaawansowane efekty przełączania i wysuwania” jest bezpłatna?

Tak — pełny tekst „Zaawansowane efekty przełączania i wysuwania” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu jQuery Academy, przejdź na CoddyKit PRO. Kurs jQuery Academy zawiera 3 lekcji w sumie.

Co nauczysz się w „Zaawansowane efekty przełączania i wysuwania”?

Proszę opanować zaawansowane zastosowania metod .slideToggle(), .fadeToggle() i .animate() do tworzenia płynnych, responsywnych i atrakcyjnych wizualnie efektów pokazywania, ukrywania i przejść. Ćwiczysz jQuery Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć jQuery Academy?

Nie wymagamy żadnego doświadczenia. jQuery Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 3.

Ile czasu zajmuje lekcja „Zaawansowane efekty przełączania i wysuwania”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji jQuery Academy?

Tak. Każda lekcja jQuery Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Łączenie i kolejkowanie animacji
  2. Niestandardowe funkcje easing i callbacki animacji
  3. Zaawansowane efekty przełączania i wysuwania
← Powrót do jQuery Academy