Jämn bakgrundsfärgförändring. Hur ändrar man bakgrundsfärg: efter pseudoklass med jQuery? Jquery ändra färg

I den här lektionen kommer vi att prata om effekten där bakgrunden för ett objekt ändras smidigt som ett resultat av att muspekaren hålls över det.
Först, som du förmodligen redan har vant dig vid (om det inte är första gången du använder jQuery-biblioteket), ansluter vi jQuery till vår webbplats.
Förutom själva jQuery behöver vi också jQuery UI.

Om du är bekant med jQuery-principerna bör du komma ihåg att vi i rubriken måste placera anropskoden, i det här fallet färgändringsanimationen, så att den laddas innan huvudinnehållet på sidan laddas. $(document).ready(function() ( // lägg din animationsanropskod här));

HTML

Här är ett exempel på HTML-kodning.

Ändra bakgrundsfärgen för ett element Animering av färgändring vid hovring / PC-spel / Portal 2 Portal 2

Den ursprungliga portalen är redan en kultsak och oväntad för sin tid. Det bekräftar bara ännu en gång den beprövade tesen om idéernas triumf över avancerad teknologi.

CSS

CSS-stilarna för vår sida ser ut så här.

Png); text-align:left; färg:#333; bredd:800px; font-size:14px; font-family:georgia, "time new romances", serif; margin:0 auto; stoppning:0; ) a( color:#333; text-decoration:none ) a:focus ( outline: none; ) h1 ( font-size: 34px; font-family: verdana, helvetica, arial, sans-serif; letter-space:- 2px; färg:#394BEA; font-weight:700; padding:20px 0 0; text-shadow:0 1px 1px #70C5ED; ) h2 ( font-size: 24px; font-family: verdana, helvetica, arial, sans- serif; färg:#5C81CB; font-weight: 400; stoppning: 0 0 10px; text-shadow:0 1px 1px #70C5ED; ) h3, h3 a( font-size:14px; font-family:verdana, helvetica, arial , sans-serif; bokstavsmellanrum:-1px; färg:#333; font-weight: 700; text-transform:versaler; margin:0; padding:8px 0 8px 0; ) p (färg:#333; flytande: vänster; line-height:22px; margin:5px; padding:0 0 10px; ) #container ( margin: 0; padding: 0; ) .boxes ( bakgrund:#fff; border:1px solid #ccc; float:left; padding:10px; position:relative; width:600px; ) img ( border:5px solid #CCCCCC; ) div.info ( border-bottom:1px solid #CCCCCC; float:left; margin:0; padding:0; width: 100%; ).block (färg:#0066CC; flyta till vänster; overflow:hidden; position:släkting; bredd:600px; ) .block h4, .block h4 a( color:#333333; font-size:11px; padding:5px 0; text-shadow:0 1px 1px #CEDEFD; text-transform:versaler; )

JS

Ett DIV-element med klassen .boxes är elementet, blocket, vars färg vi vill ändra.
Det här är koden vi kommer att anropa i rubriken.

$(document).ready(function())( $(".boxes").hover(function() ( $(this).stop().animate(( backgroundColor: "#40B8FE"), 800); ) , function() ( $(this).stop().animate(( backgroundColor: "#ffffff" ), 800); )); )); BackgroundColor-parametrarna anger färgen och värdet 800 är animeringshastigheten.

Det finns ett lager med text och en knapp, när du klickar på det måste du ändra färgen på texten på detta lager.

Ändra färg (jQuery) $(document).ready(function())( $("#color_change").click(function())( $("#layer").css("color", "#F00" ); )) )); #lager (kant:#CCC 1px solid; line-height:1.5; padding:10px 20px; width:800px; margin-top:20px;) Men så att du förstår varifrån denna missuppfattning av människor som fördömer njutning och berömmer smärta kommer , jag kommer att avslöja hela bilden för dig och förklara exakt vad den här mannen som upptäckte sanningen, som jag skulle kalla arkitekten för ett lyckligt liv, sa. Ingen avvisar, föraktar eller undviker verkligen nöjen bara för att de är njutningar, utan bara för att de som inte vet hur man rationellt hänge sig åt njutningar lider stort. Precis som det inte finns någon som skulle älska, föredra och längta efter själva lidandet bara för att det är lidande, och inte för att det ibland uppstår omständigheter när lidande och smärta ger en viss njutning. För att använda ett enkelt exempel, vem av oss skulle ägna sig åt någon form av ansträngande fysisk träning om det inte förde någon nytta med sig? Och vem skulle med rätta kunna skylla på någon som strävar efter njutning som inte skulle föra med sig några problem, eller någon som skulle undvika smärta som inte skulle föra med sig något nöje?

Idag kommer vi att lära oss hur man gör en smidig förändring av färgen på ett block med CSS och JQuery. Med detta plugin kan du uppnå fantastiskt vackra designresultat. Du kan till exempel göra en cool meny som smidigt ändrar färg när du håller muspekaren över, och tro mig, den ser väldigt vacker ut.

JQuery

Till att börja med, mellan taggarna och du måste sätta följande:

Sedan, igen mellan taggarna, kopierar vi det här skriptet:

$(document).ready(function())( $(".Box").hover(function() ( $(this).stop().animate(( bakgrundsfärg: "#FF4500"), 400); ) , function() ( $(this).stop().animate(( backgroundColor: "#ffffff" ), 400); )); ));

Där .Box är blockklassen vi kom fram till ovan i CSS.

"#FF4500" - svävarfärg. 400 — animationshastighet vid hovring.

"#ffffff" är den ursprungliga färgen efter att markören flyttats bort. 400 — animationshastighet när du flyttar bort markören.

HTML

När du har gjort allt som skrivits ovan kommer färgen på blocket gradvis att ändras. För att infoga ett sådant block på sidan behöver du bara lägga till följande på rätt plats:

Och blocket kommer att dyka upp.

Viktig

Detta plugin kan bara ändra bakgrundsfärgen. Du kommer till exempel inte att kunna bifoga den till länkar eller text. Ett annat plugin ändrar färgen på länkarna (jag kommer definitivt att skriva hur man gör det snart).

Om du vill få blocken på sidan att ha olika färger, som min, måste du placera flera skript i rad mellan taggarna och glöm därför inte att ändra färgen till den önskade. Det viktigaste är att ändra klassen, till exempel i vårt exempel ovan - Box-klassen, och nästa skript ska vara med en annan klass, till exempel Box1, sedan Box2 och så vidare.

Det var allt, kära vänner. Om du inte förstår något, var noga med att fråga i kommentarerna. Ses snart.

På något sätt, när jag stod inför behovet av att skriva effekten av text som flödar från en färg till en annan, upptäckte jag oväntat för mig själv att detta inte är en så trivial uppgift.

Du kan bara lämna en bock mittemot Effects Core. Det är denna modul som utökar metoden jQuery.animate() vi behöver; du behöver bara ansluta den nedladdade sammansättningen:

Därefter är färgen på texten, ramen eller bakgrunden för alla sidelement tillgänglig för animering.

Steg 2. Fördröjning mellan elementanimationer.

Nu när allt är i sin ordning med animeringen finns det en andra funktion som komplicerar uppgiften - att lägga till en fördröjning mellan animeringen av samlingselementen.

Låt oss säga att vi har en samling numrerade listelement:

Var $element = $("ol > li");

Animeringen av varje nästa element i samlingen bör börja med en viss fördröjning efter den föregående.

Du kan uppnå önskat resultat med följande kod:

För (var i = 0; i

Observera att setTimeout() tar som sin första parameter en funktion som returnerar en annan funktion.

Om detta inte görs kommer variabeln i att skickas genom referens och när det är dags för timerfunktionen att köra kommer i att ha sitt sista värde lika med $elements.length , eftersom for-slingan vid detta ögonblick kommer att ha avslutats och animeringen kommer inte att köras alls.

Med hjälp av en kapslad funktion kopierar vi därmed värdet av i vid varje iteration av slingan, med vars hjälp vi uppnår korrekt funktion planerad.

Slutsatser

Du kan använda en sådan animation, till exempel för att visa att du i någon lista med parametrar måste välja minst en, eller helt enkelt för att uppmärksamma något block på sidan.


Topp