Artikler

JQuery, hvordan kan vi implementere dynamiske effekter med JQuery

Med JQuery kan du lage dynamiske effekter, animasjoner og fades ved å handle på elementene på en HTML-side.

I denne artikkelen vil vi se hvordan du bruker forskjellige JQuery-metoder for å generere animasjoner.

Skjul og vis et HTML-element

metoder hide() Og show()

Hide()-metoden setter ganske enkelt stilen inline display: none for utvalgte varer. Omvendt gjenoppretter show()-metoden visningsegenskapene. 

La oss se et eksempel:

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

I det første tilfellet skjules avsnittet når du klikker på knappen (hide-btn), i det andre tilfellet vises avsnittet når du klikker på knappen (show-btn).

Du kan også spesifisere varighetsparameteren for å animere showet og skjule effekten for en periode.

Varighetene kan spesifiseres ved hjelp av en av pre-strengenedefinite 'slow''fast', eller i et antall millisekunder, for større nøyaktighet; høyere verdier indikerer tregere animasjoner.

<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>

Strengen predefiNita 'fast' indikerer en varighet på 200 millisekunder, mens strengen 'slow' angir varigheten på 600 millisekunder.

Vi kan spesifisere en funksjon av callback skal utføres etter fullføring av metoden show() eller av 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>
Vekslingsmetoden

jQuery-metoden toggle() vis eller skjul elementer på en slik måte at hvis elementet først vises, vil det bli skjult; omvendt, hvis den er skjult, vil den vises (bytter praktisk talt synligheten).

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

På samme måte kan du spesifisere parameteren duration for metoden toggle(), på en slik måte at den animerer overgangen mellom synlig og skjult, som metoder 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>

På samme måte kan du også angi en funksjon av callback for metoden 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>

jQuery fade-effekter

metoder fadeIn()fadeOut()

Du kan bruke jQuery-metoder fadeIn()fadeOut() for å vise eller skjule HTML-elementer, gradvis øke eller redusere deres opasitet og skape en falmingseffekt.

<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>

Som andre jQuery-effektmetoder, kan du valgfritt spesifisere varighet eller hastighetsparameter for metoder fadeIn()fadeOut(), for å kontrollere varigheten av uttoningen. Varighetene kan spesifiseres ved hjelp av en av pre-strengenedefinite 'slow''fast', eller i et antall millisekunder; høyere verdier indikerer tregere animasjoner.

<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>

effekten av metodene fadeIn()fadeOut() è likning a show()hide(), men i motsetning til metodene show()hide(), førstnevnte animerer bare opasiteten til målelementene og animerer ikke størrelsen deres.

Du kan også spesifisere en funksjon av callback å kjøre etter at metodene er fullført 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>
metode fadeToggle()

jQuery-metoden fadeToggle() viser eller skjuler utvalgte elementer ved å animere deres opasitet slik at hvis elementet først vises, vil det tones ut; hvis den ble skjult, vil den tone ut (dvs. bytte uttoningseffekt).

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

Du kan også spesifisere levetidsparameteren for metoden fadeToggle() når det gjelder metodene fadeIn()fadeOut(), for å kontrollere varigheten eller hastigheten på fade-animasjonen.

<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>

FadeToggle()-metoden har også muligheten til å spesifisere en funksjon 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>
metode fadeTo()

jQuery-metoden fadeTo() det ligner på metoden fadeIn(), men i motsetning til metoden fadeIn(), metoden fadeTo() lar deg blande elementer ned til et visst nivå av opasitet.

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

Den nødvendige parameteren opacity spesifiserer den endelige opasiteten til målelementene som kan være et tall mellom 0 og 1. Parameteren duration o speed det kreves også for denne metoden som spesifiserer varigheten av animasjonstoningen.

<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>

Rulleffekter

metoder slideUp()slideDown()

jQuery-metoden slideUp()slideDown() de brukes til å skjule eller vise HTML-elementer ved gradvis å redusere eller øke høyden (dvs. rulle dem opp eller ned).

<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>

Som andre jQuery-effektmetoder, kan du valgfritt spesifisere varighet eller hastighetsparameter for metodene slideUp()slideDown() for å kontrollere varigheten av lysbildeanimasjonen. Varighetene kan spesifiseres ved hjelp av en av pre-strengenedefinite 'slow''fast', eller i et antall millisekunder; høyere verdier indikerer tregere animasjoner.

<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>

Du kan også spesifisere en tilbakeringingsfunksjon som skal utføres etter fullføring av metoden 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>
metode slideToggle()

jQuery-metoden slideToggle() vis eller skjul valgte elementer ved å animere høyden deres slik at hvis elementet først vises, vil det rulles opp; hvis den er skjult, rulles den nedover, dvs. veksler mellom metoder slideUp() e slideDown().

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

På samme måte kan du spesifisere levetidsparameteren for metoden slideToggle() Kom slideUp()slideDown().

Nyhetsbrev for innovasjon
Ikke gå glipp av de viktigste nyhetene om innovasjon. Registrer deg for å motta dem på e-post.
<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>

På samme måte kan du også angi en tilbakeringingsfunksjon for metoden 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>

Animasjonseffekter

metode animate()

jQuery-metoden animate() den brukes til å lage tilpassede animasjoner. Metoden animate() brukes til å animere numeriske CSS-egenskaper, som f.eks width, height, margin, padding, opacity, top, left etc. men ikke-numeriske egenskaper som colorbackground-color de kan ikke animeres ved å bruke grunnleggende jQuery-funksjonalitet.

Metodens grunnleggende syntaks animate() det er følgende:

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

Metodeparametere animate() har følgende betydninger:

  • Den nødvendige egenskapsparameteren defifullfør CSS-egenskapene for å animere.
  • Den valgfrie varighetsparameteren angir hvor lenge animasjonen skal kjøre. Varighetene kan spesifiseres ved hjelp av en av pre-strengenedefinite 'slow''fast', eller i et antall millisekunder; høyere verdier indikerer tregere animasjoner.
  • Den valgfrie tilbakeringingsparameteren er en funksjon å ringe etter at animasjonen er fullført.

Nedenfor er et enkelt eksempel på metoden animate() som animerer et bilde fra sin opprinnelige posisjon til høyre med 300 piksler ved knappeklikk.

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

Du kan også animere flere egenskaper for et element samtidig ved å bruke metoden animate(). Alle eiendommene ble animert samtidig uten forsinkelser.

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

Du kan også animere flere egenskaper for et element én etter én individuelt, i en kø ved å bruke jQuerys sammenkoblingsfunksjon.

Følgende eksempel viser en i kø eller lenket jQuery-animasjon, hvor hver animasjon vil starte når den forrige animasjonen på elementet er fullført. Vi vil se sammenkoblingsfunksjonen i en fremtidig artikkel.

<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>

Det er også mulig defifullfør relative verdier for animerte egenskaper. Hvis en verdi er spesifisert med et prefiks += o -=, beregnes målverdien ved å legge til eller trekke det angitte tallet fra gjeldende verdi av eiendommen.

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

I tillegg til numeriske verdier kan hver egenskap godta strenger 'show''hide''toggle'. Det vil være veldig nyttig i en situasjon der du bare ønsker å animere eiendommen fra dens nåværende verdi til dens opprinnelige verdi og omvendt.

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

jQuery-metoden stop() brukes til å stoppe kjørende jQuery-animasjoner eller effekter på utvalgte elementer før fullføring.

Metodens grunnleggende syntaks stop() jQuery kan gis med:

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

Parametrene i syntaksen ovenfor har følgende betydninger:

  • Il valgfri parameter boolean stopAll, angir om animasjonen i køen skal fjernes eller ikke. Den predefinatt er false, betyr dette at bare den nåværende animasjonen vil bli stoppet, resten av animasjonene i køen vil bli utført senere.
  • Den boolske parameteren goToEnd valgfritt angir om den gjeldende animasjonen skal fullføres umiddelbart. Den predefinatt er false.

Her er et enkelt eksempel som viser metoden stop() i real action hvor du kan starte og stoppe animasjonen ved å klikke på knappen.

<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>

Her er et annet eksempel på denne metoden hvor hvis du klikker på knappen igjenSlide Toggle” etter å ha startet animasjonen, men før den er fullført, vil animasjonen umiddelbart starte i motsatt retning fra det lagrede startpunktet.

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

Når du oppretter den animerte sveveeffekten, er et av de vanligste problemene du kan støte på at flere animasjoner står i kø når du raskt plasserer og fjerner musepekeren. Hvorfor, i denne situasjonen, mouseenter gli mouseleave hendelser utløses raskt før animasjonen fullføres. For å unngå dette problemet og skape en fin og jevn sveveeffekt kan du legge til stop(true, true)til metodekjeden, slik:

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

Ring Tilbake

JavaScript-setninger utføres linje for linje. Men siden jQuery-effekten tar litt tid å fullføre, kan neste linjes kode kjøre mens den forrige effekten fortsatt kjører. For å forhindre at dette skjer, tilbyr jQuery en tilbakeringingsfunksjon for hver effektmetode.

En tilbakeringingsfunksjon er en funksjon som kjører når effekten er fullført. Tilbakeringingsfunksjonen sendes som et argument til effektens metoder, og de vises vanligvis som det siste metodeargumentet. For eksempel den grunnleggende syntaksen til jQuery-effektmetoden slideToggle() med en tilbakeringingsfunksjon som kan spesifiseres som følger:

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

Tenk på følgende eksempel hvor vi har plassert utsagnene slideToggle()alert()den ene ved siden av den andre. Hvis du prøver denne koden, vil varselet vises umiddelbart etter at du har klikket på veksleknappen uten å vente på at vekslingseffekten for lysbilde skal fullføres.

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

Og her er den modifiserte versjonen av det forrige eksemplet der vi satte inn setningen alert() inne i en tilbakeringingsfunksjon for metoden slideToggle(). Hvis du prøver denne koden, vil advarselsmeldingen vises når lysbildevekslingseffekten er fullført.

<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>

På samme måte kan du defifullfør tilbakeringingsfunksjoner for de andre jQuery-effektmetodene, for eksempel show(), hide(), fadeIn()fadeOut()animate(), etc.

<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>

Hvis du prøver eksempelkoden ovenfor, vil du få samme advarsel to ganger én gang per vare <h1><p>, etter å ha klikket på aktiveringsknappen.

BlogInnovazione.it

Nyhetsbrev for innovasjon
Ikke gå glipp av de viktigste nyhetene om innovasjon. Registrer deg for å motta dem på e-post.
Tags: jquery

Siste artikler

Fremtiden er her: Hvordan shippingindustrien revolusjonerer den globale økonomien

Marinesektoren er en ekte global økonomisk makt, som har navigert mot et 150 milliarder marked...

1 mai 2024

Utgivere og OpenAI signerer avtaler for å regulere flyten av informasjon som behandles av kunstig intelligens

Sist mandag kunngjorde Financial Times en avtale med OpenAI. FT lisensierer sin journalistikk i verdensklasse...

30 april 2024

Nettbetalinger: Her er hvordan strømmetjenester får deg til å betale for alltid

Millioner av mennesker betaler for strømmetjenester og betaler månedlige abonnementsavgifter. Det er vanlig oppfatning at du...

29 april 2024

Veeam har den mest omfattende støtten for løsepengevare, fra beskyttelse til respons og gjenoppretting

Coveware by Veeam vil fortsette å tilby responstjenester for cyberutpressing. Coveware vil tilby kriminaltekniske og utbedringsmuligheter...

23 april 2024