towary

JQuery, jak możemy zaimplementować dynamiczne efekty za pomocą JQuery

Dzięki JQuery możesz tworzyć dynamiczne efekty, animacje i przejścia, działając na elementy strony HTML.

W tym artykule zobaczymy, jak wykorzystać różne metody JQuery do generowania animacji.

Ukryj i pokaż element HTML

metody hide() I show()

Metoda hide() po prostu ustawia styl w wierszu display: none dla wybranych pozycji. I odwrotnie, metoda show() przywraca właściwości wyświetlania. 

Zobaczmy przykład:

<script>
$(document).ready(function(){
    // Hide displayed paragraphs
    $(".hide-btn").click(function(){
        $("p").hide();
    });
    
    // Show hidden paragraphs
    $(".show-btn").click(function(){
        $("p").show();
    });
});
</script>

W pierwszym przypadku akapit jest ukryty po kliknięciu przycisku (hide-btn), w drugim przypadku akapit jest pokazywany po kliknięciu przycisku (show-btn).

Możesz także określić parametr czasu trwania, aby animować efekt pokazywania i ukrywania przez określony czas.

Czasy trwania można określić za pomocą jednego z łańcuchów poprzedzającychdefinoc 'slow''fast'lub w liczbie milisekund, dla większej dokładności; wyższe wartości wskazują na wolniejsze animacje.

<script>
$(document).ready(function(){
    // Hide displayed paragraphs with different speeds
    $(".hide-btn").click(function(){
        $("p.normal").hide();
        $("p.fast").hide("fast");
        $("p.slow").hide("slow");
        $("p.very-fast").hide(50);
        $("p.very-slow").hide(2000);
    });
    
    // Show hidden paragraphs with different speeds
    $(".show-btn").click(function(){
        $("p.normal").show();
        $("p.fast").show("fast");
        $("p.slow").show("slow");
        $("p.very-fast").show(50);
        $("p.very-slow").show(2000);
    });
});
</script>

Ciąg przeddefinita 'fast' wskazuje czas trwania 200 milisekund, podczas gdy string 'slow' wskazuje czas trwania 600 milisekund.

Możemy określić funkcję callback do wykonania po zakończeniu metody show() lub dell ' hide()

<script>
$(document).ready(function(){
    // Display alert message after hiding paragraphs
    $(".hide-btn").click(function(){
        $("p").hide("slow", function(){
            // Code to be executed
            alert("The hide effect is completed.");
        });
    });
    
    // Display alert message after showing paragraphs
    $(".show-btn").click(function(){
        $("p").show("slow", function(){
            // Code to be executed
            alert("The show effect is completed.");
        });
    });
});
</script>
Metoda przełączania

Metoda jQuery toggle() pokazywać lub ukrywać elementy w taki sposób, że jeśli element jest początkowo wyświetlany, zostanie ukryty; i odwrotnie, jeśli jest ukryty, zostanie wyświetlony (praktycznie przełącza jego widoczność).

<script>
$(document).ready(function(){
    // Toggles paragraphs display
    $(".toggle-btn").click(function(){
        $("p").toggle();
    });
});
</script>

Podobnie możesz określić parametr duration dla metody toggle(), w taki sposób, aby animować przejście między widocznymi i ukrytymi metodami show() e hide()

<script>
$(document).ready(function(){
    // Toggles paragraphs with different speeds
    $(".toggle-btn").click(function(){
        $("p.normal").toggle();
        $("p.fast").toggle("fast");
        $("p.slow").toggle("slow");
        $("p.very-fast").toggle(50);
        $("p.very-slow").toggle(2000);
    });
});
</script>

Podobnie możesz również określić funkcję callback dla metody toggle().

<script>
$(document).ready(function(){
    // Display alert message after toggling paragraphs
    $(".toggle-btn").click(function(){
        $("p").toggle(1000, function(){
            // Code to be executed
            alert("The toggle effect is completed.");
        });
    });
});
</script>

Efekty zanikania jQuery

metody fadeIn()fadeOut()

Możesz użyć metod jQuery fadeIn()fadeOut() aby pokazać lub ukryć elementy HTML, stopniowo zwiększając lub zmniejszając ich krycie i tworząc efekt blaknięcia.

<script>
$(document).ready(function(){
    // Fading out displayed paragraphs
    $(".out-btn").click(function(){
        $("p").fadeOut();
    });
    
    // Fading in hidden paragraphs
    $(".in-btn").click(function(){
        $("p").fadeIn();
    });
});
</script>

Podobnie jak inne metody efektów jQuery, możesz opcjonalnie określić parametr czasu trwania lub szybkości dla metod fadeIn()fadeOut(), aby kontrolować czas trwania zanikania. Czasy trwania można określić za pomocą jednego z łańcuchów poprzedzającychdefinoc 'slow''fast'lub w liczbie milisekund; wyższe wartości wskazują na wolniejsze animacje.

<script>
$(document).ready(function(){
    // Fading out displayed paragraphs with different speeds
    $(".out-btn").click(function(){
        $("p.normal").fadeOut();
        $("p.fast").fadeOut("fast");
        $("p.slow").fadeOut("slow");
        $("p.very-fast").fadeOut(50);
        $("p.very-slow").fadeOut(2000);
    });
    
    // Fading in hidden paragraphs with different speeds
    $(".in-btn").click(function(){
        $("p.normal").fadeIn();
        $("p.fast").fadeIn("fast");
        $("p.slow").fadeIn("slow");
        $("p.very-fast").fadeIn(50);
        $("p.very-slow").fadeIn(2000);
    });
});
</script>

efekt metod fadeIn()fadeOut() jest podobny do show()hide(), ale w przeciwieństwie do metod show()hide(), te pierwsze animują tylko krycie elementów docelowych i nie animują ich rozmiaru.

Możesz także określić funkcję callback uruchomić po zakończeniu metod fadeIn()fadeOut().

<script>
$(document).ready(function(){
    // Display alert message after fading out paragraphs
    $(".out-btn").click(function(){
        $("p").fadeOut("slow", function(){
            // Code to be executed
            alert("The fade-out effect is completed.");
        });
    });
    
    // Display alert message after fading in paragraphs
    $(".in-btn").click(function(){
        $("p").fadeIn("slow", function(){
            // Code to be executed
            alert("The fade-in effect is completed.");
        });
    });
});
</script>
Metoda fadeToggle()

Metoda jQuery fadeToggle() wyświetla lub ukrywa wybrane elementy, animując ich krycie, tak że jeśli element jest początkowo wyświetlany, zostanie wyblakły; jeśli był ukryty, zniknie (tj. przełączy efekt zanikania).

<script>
$(document).ready(function(){
    // Toggles paragraphs display with fading
    $(".toggle-btn").click(function(){
        $("p").fadeToggle();
    });
});
</script>

Można również określić parametr czasu życia metody fadeToggle() co do metod fadeIn()fadeOut(), aby sterować czasem trwania lub szybkością animacji zanikania.

<script>
$(document).ready(function(){
    // Fade Toggles paragraphs with different speeds
    $(".toggle-btn").click(function(){
        $("p.normal").fadeToggle();
        $("p.fast").fadeToggle("fast");
        $("p.slow").fadeToggle("slow");
        $("p.very-fast").fadeToggle(50);
        $("p.very-slow").fadeToggle(2000);
    });
});
</script>

Metoda fadeToggle() ma również możliwość określenia funkcji callback.

<script>
$(document).ready(function(){
    // Display alert message after fade toggling paragraphs
    $(".toggle-btn").click(function(){
        $("p").fadeToggle(1000, function(){
            // Code to be executed
            alert("The fade-toggle effect is completed.");
        });
    });
});
</script>
Metoda fadeTo()

Metoda jQuery fadeTo() jest podobny do metody fadeIn(), ale w przeciwieństwie do metody fadeIn(), metoda fadeTo() umożliwia mieszanie elementów do określonego poziomu krycia.

$(selector).fadeTo(speed, opacity, callback);

Wymagany parametr opacity określa ostateczne krycie elementów docelowych, które może być liczbą z przedziału od 0 do 1. Parametr duration o speed jest to również wymagane dla tej metody, która określa czas trwania zanikania animacji.

<script>
$(document).ready(function(){
    // Fade to paragraphs with different opacity
    $(".to-btn").click(function(){
        $("p.none").fadeTo("fast", 0);
        $("p.partial").fadeTo("slow", 0.5);
        $("p.complete").fadeTo(2000, 1);
    });
});
</script>

Efekty przewijania

metody slideUp()slideDown()

Metoda jQuery slideUp()slideDown() służą do ukrywania lub pokazywania elementów HTML poprzez stopniowe zmniejszanie lub zwiększanie ich wysokości (tj. przewijanie ich w górę lub w dół).

<script>
$(document).ready(function(){
    // Slide up displayed paragraphs
    $(".up-btn").click(function(){
        $("p").slideUp();
    });
    
    // Slide down hidden paragraphs
    $(".down-btn").click(function(){
        $("p").slideDown();
    });
});
</script>

Podobnie jak inne metody efektów jQuery, możesz opcjonalnie określić parametr czasu trwania lub szybkości dla metod slideUp()slideDown() , aby kontrolować czas trwania animacji slajdu. Czasy trwania można określić za pomocą jednego z łańcuchów poprzedzającychdefinoc 'slow''fast'lub w liczbie milisekund; wyższe wartości wskazują na wolniejsze animacje.

<script>
$(document).ready(function(){
    // Sliding up displayed paragraphs with different speeds
    $(".up-btn").click(function(){
        $("p.normal").slideUp();
        $("p.fast").slideUp("fast");
        $("p.slow").slideUp("slow");
        $("p.very-fast").slideUp(50);
        $("p.very-slow").slideUp(2000);
    });
    
    // Sliding down hidden paragraphs with different speeds
    $(".down-btn").click(function(){
        $("p.normal").slideDown();
        $("p.fast").slideDown("fast");
        $("p.slow").slideDown("slow");
        $("p.very-fast").slideDown(50);
        $("p.very-slow").slideDown(2000);
    });
});
</script>

Możesz także określić funkcję wywołania zwrotnego do wykonania po zakończeniu metody slideUp()slideDown().

<script>
$(document).ready(function(){
    // Display alert message after sliding up paragraphs
    $(".up-btn").click(function(){
        $("p").slideUp("slow", function(){
            // Code to be executed
            alert("The slide-up effect is completed.");
        });
    });
    
    // Display alert message after sliding down paragraphs
    $(".down-btn").click(function(){
        $("p").slideDown("slow", function(){
            // Code to be executed
            alert("The slide-down effect is completed.");
        });
    });
});
</script>
Metoda slideToggle()

Metoda jQuery slideToggle() pokaż lub ukryj wybrane elementy, animując ich wysokość, tak aby element, który jest początkowo wyświetlany, został przewinięty w górę; jeśli jest ukryty, zostanie przewinięty w dół, tj. przełącza między metodami slideUp() e slideDown().

<script>
$(document).ready(function(){
    // Toggles paragraphs display with sliding
    $(".toggle-btn").click(function(){
        $("p").slideToggle();
    });
});
</script>

Podobnie możesz określić parametr czasu życia dla metody slideToggle() jak slideUp()slideDown().

Biuletyn innowacji
Nie przegap najważniejszych wiadomości dotyczących innowacji. Zarejestruj się, aby otrzymywać je e-mailem.
<script>
$(document).ready(function(){
    // Slide Toggles paragraphs with different speeds
    $(".toggle-btn").click(function(){
        $("p.normal").slideToggle();
        $("p.fast").slideToggle("fast");
        $("p.slow").slideToggle("slow");
        $("p.very-fast").slideToggle(50);
        $("p.very-slow").slideToggle(2000);
    });
});
</script>

Podobnie możesz również określić funkcję wywołania zwrotnego dla metody slideToggle().

<script>
$(document).ready(function(){
    // Display alert message after slide toggling paragraphs
    $(".toggle-btn").click(function(){
        $("p").slideToggle(1000, function(){
            // Code to be executed
            alert("The slide-toggle effect is completed.");
        });
    });
});
</script>

Efekty animacji

Metoda animate()

Metoda jQuery animate() służy do tworzenia niestandardowych animacji. Metoda animate() służy do animowania numerycznych właściwości CSS, takich jak width, height, margin, padding, opacity, top, left itp. ale właściwości nieliczbowe, takie jak colorbackground-color nie można ich animować przy użyciu podstawowych funkcji jQuery.

Podstawowa składnia metody animate() jest następujący:

$(selector).animate({ properties }, duration, callback);

Parametry metody animate() mają następujące znaczenia:

  • Wymagany parametr właściwości defizakończ właściwości CSS do animacji.
  • Opcjonalny parametr Duration określa, jak długo animacja będzie działać. Czasy trwania można określić za pomocą jednego z łańcuchów poprzedzającychdefinoc 'slow''fast'lub w liczbie milisekund; wyższe wartości wskazują na wolniejsze animacje.
  • Opcjonalny parametr wywołania zwrotnego to funkcja do wywołania po zakończeniu animacji.

Poniżej znajduje się prosty przykład metody animate() który animuje obraz z jego pierwotnej pozycji w prawo o 300 pikseli po kliknięciu przycisku.

<script>
$(document).ready(function(){
    $("button").click(function(){
        $("img").animate({
            left: 300
        });
    });
});
</script>

Możesz także animować wiele właściwości elementu jednocześnie, używając tej metody animate(). Wszystkie właściwości były animowane w tym samym czasie bez żadnych opóźnień.

<script>
$(document).ready(function(){
    $("button").click(function(){
        $(".box").animate({
            width: "300px",
            height: "300px",
            marginLeft: "150px",
            borderWidth: "10px",
            opacity: 0.5
        });
    });
});
</script>

Możesz także animować wiele właściwości elementu pojedynczo, w kolejce za pomocą funkcji konkatenacji jQuery.

Poniższy przykład przedstawia animację jQuery w kolejce lub łańcuchu, w której każda animacja rozpocznie się po zakończeniu poprzedniej animacji elementu. Funkcję konkatenacji zobaczymy w kolejnym artykule.

<script>
$(document).ready(function(){
    $("button").click(function(){
        $(".box")
            .animate({width: "300px"})
            .animate({height: "300px"})
            .animate({marginLeft: "150px"})
            .animate({borderWidth: "10px"})
            .animate({opacity: 0.5});
    });
});
</script>

Jest to również możliwe defizakończ wartości względne dla animowanych właściwości. Jeśli wartość jest określona z prefiksem += o -=, wartość docelowa jest obliczana przez dodanie lub odjęcie określonej liczby od bieżącej wartości właściwości.

<script>
$(document).ready(function(){
    $("button").click(function(){
        $(".box").animate({            
            top: "+=50px",
            left: "+=50px",
            width: "+=50px",
            height: "+=50px"
        });
    });
});
</script>

Oprócz wartości liczbowych każda właściwość może akceptować ciągi znaków 'show''hide''toggle'. Będzie to bardzo przydatne w sytuacji, gdy chcesz po prostu animować właściwość z jej aktualnej wartości do wartości początkowej i odwrotnie.

<script>
$(document).ready(function(){
    $("button").click(function(){
        $(".box").animate({
            width: 'toggle'
        });
    });
});
</script>
Metoda stop()

Metoda jQuery stop() służy do zatrzymania aktualnie uruchomionych animacji lub efektów jQuery na wybranych elementach przed zakończeniem.

Podstawowa składnia metody stop() jQuery można podać za pomocą:

$(selector).stop(stopAll, goToEnd);

Parametry w powyższej składni mają następujące znaczenie:

  • Il opcjonalny parametr logiczny stopAll, określa, czy usunąć animację z kolejki. Przedrostek predefinoc jest false, oznacza to, że zatrzymana zostanie tylko bieżąca animacja, pozostałe animacje w kolejce zostaną wykonane później.
  • Parametr logiczny goToEnd opcjonalny określa, czy natychmiast zakończyć bieżącą animację. Przedrostek predefinoc jest false.

Oto prosty przykład demonstrujący tę metodę stop() w prawdziwej akcji, w której możesz rozpocząć i zatrzymać animację po kliknięciu przycisku.

<script>
$(document).ready(function(){
    // Start animation
    $(".start-btn").click(function(){
      $("img").animate({left: "+=150px"}, 2000);
    });
 
    // Stop running animation
    $(".stop-btn").click(function(){
      $("img").stop();
    });
    
    // Start animation in the opposite direction
    $(".back-btn").click(function(){
      $("img").animate({left: "-=150px"}, 2000);
    });
 
    // Reset to default
    $(".reset-btn").click(function(){
      $("img").animate({left: "0"}, "fast");
    });
});
</script>

Oto kolejny przykład tej metody, gdy ponownie klikniesz przyciskSlide Toggle” po rozpoczęciu animacji, ale przed jej zakończeniem, animacja natychmiast rozpocznie się w kierunku przeciwnym do zapisanego punktu początkowego.

<script>
$(document).ready(function(){
    // Kill and toggle the current sliding animation
    $(".toggle-btn").on("click", function(){
        $(".box").stop().slideToggle(1000);
    });
});
</script>

Podczas tworzenia animowanego efektu zawisu, jednym z najczęstszych problemów, jakie możesz napotkać, jest wiele animacji ustawionych w kolejce, gdy szybko umieszczasz i usuwasz kursor myszy. Dlaczego w tej sytuacji mouseenter gli mouseleave zdarzenia są uruchamiane szybko przed zakończeniem animacji. Aby uniknąć tego problemu i stworzyć ładny i płynny efekt zawisu, możesz dodać stop(true, true)do łańcucha metod, tak:

<script>
$(document).ready(function(){
    $(".box").hover(function(){
        $(this).find("img").stop(true, true).fadeOut();
    }, function(){
        $(this).find("img").stop(true, true).fadeIn();
    });
});
</script>

Callback

Instrukcje JavaScript są wykonywane linia po linii. Ponieważ jednak efekt jQuery zajmuje trochę czasu, kod następnego wiersza może działać, gdy poprzedni efekt jest nadal uruchomiony. Aby temu zapobiec, jQuery zapewnia funkcję wywołania zwrotnego dla każdej metody efektu.

Funkcja wywołania zwrotnego to funkcja, która jest uruchamiana po zakończeniu efektu. Funkcja wywołania zwrotnego jest przekazywana jako argument do metod efektu i zwykle pojawiają się one jako ostatni argument metody. Na przykład podstawowa składnia metody efektu jQuery slideToggle() z funkcją wywołania zwrotnego, którą można określić w następujący sposób:

$(selector).slideToggle(duration, callback);

Rozważmy następujący przykład, w którym umieściliśmy instrukcje slideToggle()alert()jeden obok drugiego. Jeśli spróbujesz tego kodu, alert pojawi się natychmiast po kliknięciu przycisku przełączania, bez czekania na zakończenie efektu przełączania slajdów.

<script>
$(document).ready(function(){
    $("button").click(function(){
        $("p").slideToggle("slow");
        alert("The slide toggle effect has completed.");
    });   
});
</script>

A oto zmodyfikowana wersja poprzedniego przykładu, w którym wstawiliśmy instrukcję alert() wewnątrz funkcji wywołania zwrotnego dla metody slideToggle(). Jeśli spróbujesz tego kodu, komunikat ostrzegawczy pojawi się po zakończeniu efektu przełączania slajdów.

<script>
$(document).ready(function(){
    $("button").click(function(){
        $("p").slideToggle("slow", function(){
            // Code to be executed once effect is complete
            alert("The slide toggle effect has completed.");
        });
    });   
});
</script>

Podobnie możesz defizakończ funkcje wywołania zwrotnego dla innych metod efektów jQuery, takich jak show(), hide(), fadeIn()fadeOut()animate()Itp..

<script>
$(document).ready(function(){
    $("button").click(function(){
        $("h1, p").slideToggle("slow", function(){
            // Code to be executed once effect is complete
            alert("The slide toggle effect has completed.");
        });
    });   
});
</script>

Jeśli wypróbujesz powyższy przykładowy kod, otrzymasz dwa razy ten sam komunikat ostrzegawczy dla każdego elementu <h1><p>, po kliknięciu przycisku aktywacji.

BlogInnovazione.it

Biuletyn innowacji
Nie przegap najważniejszych wiadomości dotyczących innowacji. Zarejestruj się, aby otrzymywać je e-mailem.
tagi: jQuery

Najnowsze artykuły

Veeam oferuje najbardziej wszechstronną obsługę oprogramowania ransomware, od ochrony po reagowanie i odzyskiwanie

Coveware by Veeam będzie w dalszym ciągu świadczyć usługi reagowania na incydenty związane z wyłudzeniami cybernetycznymi. Coveware będzie oferować funkcje kryminalistyczne i naprawcze…

Kwiecień 23 2024

Rewolucja ekologiczna i cyfrowa: jak konserwacja predykcyjna zmienia przemysł naftowy i gazowy

Konserwacja predykcyjna rewolucjonizuje sektor naftowo-gazowy dzięki innowacyjnemu i proaktywnemu podejściu do zarządzania zakładami.…

Kwiecień 22 2024

Brytyjski organ antymonopolowy podnosi alarm BigTech w związku z GenAI

Brytyjskie CMA wydało ostrzeżenie dotyczące zachowań Big Tech na rynku sztucznej inteligencji. Tam…

Kwiecień 18 2024

Casa Green: rewolucja energetyczna dla zrównoważonej przyszłości we Włoszech

Rozporządzenie w sprawie zielonych domów, opracowane przez Unię Europejską w celu zwiększenia efektywności energetycznej budynków, zakończyło proces legislacyjny…

Kwiecień 18 2024