Contacte

Efectul fluxului de culori alternativ. Schimbarea netedă în culoarea fundalului JQuery Schimbarea culorilor netede

Ideea este extrem de simplă și de înțeles ... să presupunem că dorim să schimbăm culoarea fundalului paginii atunci când derulați la fiecare 500px din partea de sus. Din păcate, găsiți o versiune simplă gata, poate fi supusă modernizării, nu a reușit să găsească. Prin urmare, împreună cu @only_darkAngel, a fost scrisă o versiune elementară:

Mai întâi conectați biblioteca în cap dacă nu sunt încă conectate

Apoi câteva linii de stiluri

Apoi, scriptul care va schimba culoarea paginii la derularea.
Digit 400 stabilește rata de schimbare a culorii (0,4 secunde). În partea de jos a numărului 451 se stabilește timpul pentru a verifica poziția derulării, acest număr ar trebui să fie întotdeauna mai lung decât timpul de viteză a culorii.

Damo. Script de lucru. Așa cum vedem că totul este extrem de simplu și de înțeles, dar în același timp primitiv primitiv.

De asemenea, am găsit opțiunea mai frumoasă, dar și complexă http://jsfiddle.net/jguffy/mxkx9J2O/ poate fi, de asemenea, la îndemână.

Specificați întrebările din comentarii, împărtășiți articolul în SOC. Rețelele fac clic pe butonul corespunzător de mai jos 🙂 Vă mulțumim pentru citire!

Există un strat cu text și butonul când faceți clic pe pe care trebuie să modificați culoarea textului din acest strat.

Schimbați culoarea (jQuery)

Dar ca să înțelegeți unde vine de unde vine prezentarea oamenilor, vina pe plăcere și de a lăuda suferința, voi dezvălui întreaga imagine în fața dvs. și voi clarifica ceea ce această persoană care a descoperit adevărul pe care l-aș numi arhitecții unui fericit viaţă. Într-adevăr, nimeni nu respinge, nu disprețuiește, nu evită plăcerea numai pentru că este plăcere, dar numai pentru că cei care nu știu cum să se răsună cu înțelepciune, înțelegeți marele suferință. Pe lângă faptul că nu există nimeni care a iubit, ar prefera și se va confrunta cu suferința în sine numai pentru a fi suferință și nu pentru că alte momente apar astfel de circumstanțe atunci când suferința și durerea aduce niște plăceri și dureri considerabile. Dacă profitați de cel mai simplu exemplu, atunci cine dintre noi ar fi făcut orice fel de exercițiu fizic, dacă nu ar aduce beneficii cu ei? Și cine ar putea fi în dreptate să reproteze aspirarea la bucurie, ceea ce nu ar avea probleme cu ei, sau care ar folosi astfel de suferințe care nu ar aduce nici o plăcere cu el?



Cumva, cu care se confruntă cu necesitatea de a scrie efectul de a curge textul de la o culoare la alta, descoperite brusc pentru sine că aceasta nu este o sarcină atât de trivială.

Puteți lăsa doar o bifă Efecte Core.. Acesta este acest modul care extinde metoda jquery.anite () de care aveți nevoie, conectați doar ansamblul descărcat:

După aceea, culoarea textului, a cadrului sau a fundalului oricărui element de pagină este disponibilă pentru animație.

Pasul 2. Întârziere între animația elementelor.

Acum, când totul este în ordine cu animația, există oa doua caracteristică care complică sarcina - pentru a face o întârziere între animația elementelor colecției.

Să presupunem că avem o colecție de articole numerotate:

Var $ elemente \u003d $ ("ol\u003e li");

Animația fiecărui element următor al colecției ar trebui să înceapă cu o anumită întârziere după cea precedentă.

Puteți obține rezultatul dorit utilizând următorul cod:

Pentru (var i \u003d 0; i

Rețineți că în Settimeout () Primul parametru este transmis printr-o funcție care returnează o altă funcție.

Dacă acest lucru nu se face, atunci variabila i va fi transmisă prin referință și când vine timpul de execuție a funcției temporizatorului, voi avea cea mai recentă valoare egală cu $ elemente.Lend, deoarece în acest moment pentru ciclul pentru va deja sfârșitul și animația nu va fi îndeplinită deloc.

Folosind funcția imbricată, copiem astfel valoarea I pe fiecare iterație a ciclului, cu care atingem funcționarea corectă a intenției.

Concluzii

Puteți utiliza o astfel de animație, de exemplu, pentru a arăta că într-o listă de opțiuni trebuie să selectați cel puțin una sau pur și simplu pentru a atrage atenția asupra unei pagini a paginii.

Există o modalitate de a alege / manipula elementele CSS Pseudo-elemente, cum ar fi: înainte și: după (și o versiune veche cu un singur punct și virgulă) folosind jQuery?

De exemplu, fișa mea de stil are următoarea regulă:

Span :: Afterter (Conținut: "Foo")

Cum pot schimba "foo" la "bar" folosind jQuery?

De asemenea, puteți transfera conținutul atributului Pseudo-element al datelor și apoi utilizați jQuery pentru a gestiona acest lucru:

Foo.

$ ("Span"). Hover (FUNCȚIA () ($ (Acest) .Attr ("conținut de date", "Bar");));

Span: Aftert: Attr (conținut de date) "Orice alt text pe care îl puteți dori";)

Dacă doriți să fie afișată "alt text", îl puteți combina cu soluția Seucolega după cum urmează:

Foo.

$ ("Span"). Hover (Funcție () ($ (Aceasta) .Addclass ("schimbare"). Attr ("conținut de date", "bar");));

Span.change: Aftert: attr (conținut de date) "orice alt text pe care îl doriți";)

Este nepractic, deoarece nu l-am scris pentru a fi folosit în lumea reală, doar pentru a vă oferi un exemplu de ceea ce se poate realiza.

Css \u003d (înainte: funcția (elem, attr) (dacă ($ (# # cust_style ")! \u003d\u003d nedefinit) ($ (" corp "). Adăugați ("");) Altceva ($ (" # # cust_style "). Eliminați (); $ (" corp "). APPACT ("");)), După: Funcția (ELEM, ATTR) (dacă ($ (" # # Cust_style ")! \u003d\u003d Undefined) ($ (" corp "). APPACT ("");) Altceva ($ (" # # cust_style "). Eliminați (); $ (" corp "). APPACT (""); } } }

această adăugare adaugă în prezent un element sau adaugă elementul de stil care conține atributul necesar care va afecta elementul țintă după elementul Pseudo.

poate fi folosit ca

CSS.After ("Sleeplement", "Conținut:" Test "; Poziție:" Absolut ";") // Editarea / adăugarea stilurilor la: După

Css.befor (...); // pentru a afecta elementul Pseudo.

ca și după: și înainte: elementele Pseudo nu sunt disponibile direct prin DOM, este imposibil să editați liber valorile CSS specifice.

calea mea a fost doar un exemplu și nu este foarte bun pentru practică, puteți schimba, încercați unele dintre propriile dvs. trucuri și faceți-l corect pentru a fi folosit în lumea reală.

Deci, faceți propriile experimente cu acest lucru și alții!

salută - Aarsh Hedde.

Mulțumiri tuturor! Am reușit să fac ceea ce am vrut: D http://jsfiddle.net/tfc9j/42/ Aici arata

am vrut să am opacitatea divului extern pentru a fi diferită de opacitatea Divului Inner și această schimbare făcând clic pe altundeva;) Mulțumesc!

$ ("# # Ena"). On ("clic", funcția () ($ ("" "" "" "HEAD"). APPACT ("");)); $ (" # # duop "). Pe (" CLICK ", FUNCTION (E) ($ (" "" HEAP "). APPLATE (""); E.Soppropagare ();)); #EnA (lățime: 300px; înălțime: 300px; margine: 1px negru solid; poziție: rudă;) #Doo (opacitate: 1; poziție: absolut; sus: 50px; lățime : 300px; înălțime: 100px; fundal-culoare: alb;) #Ena: înainte: culoare: alb; cursor: pointer; poziție: absolut; fundal-culoare: roșu; opacitate: 0,9; lățime: 100%; înălțime: 100% ;)

duoyyyyyyyyyyy P.

Puteți crea o proprietate falsă sau puteți utiliza acest lucru existent și moșteniți-l în tabelul stilurilor Pseudo-Element.

var a comutat \u003d false; // Activați setul de comutare a culorilor (Funcție () (Var Color \u003d Switched? "Red": "întunecat"; var element \u003d document.getelementbyid ("săgeată"); element.style.backgroundcolor \u003d culoare; // Gestionarea Pseudo-Element "CSS // Utilizarea moștenirii. Element.Style.borderleftcolor \u003d culoare, comutat \u003d! (/ * Set de proprietate fictivă * / frontieră-stânga-culoare: roșu; fundal-culoare: roșu; Lățime: 1EM; Înălțime: 1EM; Afișaj: bloc-bloc; poziție: rudă;) .arrow: după (frontieră: 1Em solid transparent; margine-dreapta: 1Em solid transparent; marginea solidă transparentă; frontieră stânga: 1EM solid transparent; / * moștenire proprietate * / frontieră-stânga-culoare: moștenire; conținut: ""; lățime: 0; înălțime: 0; poziție: absolut; stânga: 100%; top: -50%;)

Se pare că nu funcționează pentru conținut: (

Nu puteți alege obiectele Pseudo în jQuery, deoarece nu fac parte din DOM. Dar puteți adăuga o anumită clasă la elementul Tatălui și o puteți gestiona cu Pseudo-Elements în CSS.

Span.change: După (Conținut: "Bar")

Deși sunt afișate browsere prin CSS, ca și cum ar fi fost similare cu alte elemente adevărate Dom, elementele pseudo-uri nu fac parte din DOM, deoarece elementele Pseudo, după cum rezultă din nume, nu sunt elemente reale și, prin urmare, nu puteți alegeți și manipulați-le direct folosind jQuery (sau Orice JavaScript-API, dacă nu într-adevăr Selectori API.). Acest lucru se aplică oricăror elemente Pseudo-elemente ale căror stiluri pe care încercați să le modificați folosind un script și nu doar: înainte și:: Afterter.

Puteți primi doar stiluri Pseudo-Element direct în timpul executării prin CSSOM (cred că fereastra.GetComplutestyle ()), care nu este supusă lui JQuery în afara. CSS (), o metodă care nu acceptă și Pseudo-elemente.

Puteți găsi întotdeauna alte căi în jurul lui, deși, de exemplu,:

un lucrător, dar nu un mod foarte eficient - adăugați o regulă unui document cu un nou conținut și consultați-l cu o clasă. În funcție de ceea ce este necesar, clasa poate necesita un identificator unic pentru fiecare valoare din conținut.

$("") .Appendto ($ (" cap "); $ (" span "). Addclass (" ID-ul după ");

Am răspuns deja la această întrebare, dar pentru a fi super-cool, voi repeta pentru tine.

Răspunsul ar trebui să fie Da & amp; Nu. Nu puteți selecta un element cu un selector pseudo-selector, dar puteți adăuga o nouă regulă în foaia de stil utilizând JavaScript.

Am făcut ceva care ar trebui să lucreze pentru dvs .:

Var AddRule \u003d Funcție (coloană.Insertrule) Fișa de retur.Insertrule (selector + "(" + stiluri + ")", foaie.cssres.length); dacă (tabla.addrule) foaie de retur .Addrule (selector, stiluri);) ; AddRule (document.Stylesheets, "Corp: după", "Conținut:" foo ");

:: Inainte de.

Stilul calculat în "înainte" a fost conținut: "Verificați pentru a urmări";

Iată cele două linii mele jQuery, care folosesc ideea de a adăuga o clasă suplimentară, care se referă în mod specific la acest element și apoi adaugă etichetă de stil (cu o etichetă importantă) pentru a schimba valorile conținutului CSS ale elementului sudo:

$ ("span.play:eq(0)") .Addclass ("g");

$ ("Corp"). APPACT ("");

De ce adăugați clase sau atribute atunci când puteți adăuga doar stilul la cap

$ ("Cap"). Adăugați ("")

Există multe răspunsuri aici, dar nici un răspuns nu ajută la manipularea CSS: înainte sau: după: Nici măcar nu este acceptat.

Așa sugerez asta. Să presupunem că HTML vă arată așa:

Test

Și apoi îl instalați: înainte de CSS și îl proiectați așa:

# Ceva: înainte (conținut: "1"; font-dimensiune: 20px; culoare: roșu;) # ceva (conținut: "1st";)

Vă rugăm să rețineți că am instalat și conținut în elementul în sine, astfel încât să puteți lua cu ușurință mai târziu. Acum există un buton click pe care doriți să modificați culoarea: la dimensiunea verde și a fontului de până la 30 pixeli. Puteți obține acest lucru după cum urmează:

Determinați CSS cu stilul dorit în unele clase .antive:

Active: înainte (Culoare: Green! Important; Font-dimensiune: 30px! Important;)

Acum puteți schimba: în fața stilului prin adăugarea unei clase la dvs .: în fața elementului după cum urmează:

Dacă doriți să obțineți conținut: înainte, se poate face ca:

În cele din urmă, dacă doriți să schimbați dinamic conținutul: Înainte de a utiliza jQuery, puteți obține acest lucru după cum urmează:

Apăsând butonul "Schimbare" se va schimba: înainte de conținutul # ceva de la "22", ceea ce este o valoare dinamică.

Sper că acest lucru va ajuta

Iată o metodă de acces: după și: înainte de stilul definit în CSS:

// obțineți valoarea culorii // obțineți valoarea conținutului

$ (". span"). Attr ("Data-txt", "foo"); $ (". Span"). Faceți clic pe (Funcție () (acest lucru) .Attr ("date-txt", "orice alt text");)))) .span () .span: După (conținut: attr (date (date -txt);)

De asemenea, ne putem baza cSS Proprietăți utilizator (variabile) Pentru a manipula elementul pseudo-element. Putem citi specificații , ce:

Proprietățile personalizate sunt proprietăți convenționale, astfel încât acestea pot fi declarate pe orice element, permis cu moștenirea obișnuită și regulile cascadă, pot fi cauzate de @media și alte reguli condiționate, pot fi utilizate în atributul stil HTML, pot fi citite sau specificate folosind Cssom și t d.

Având în vedere acest lucru, ideea este de a determina proprietatea utilizatorului în interiorul elementului, iar elementul pseudo-lea îl moștenește; Astfel încât să putem schimba cu ușurință:

1) Utilizarea stilului încorporat:

Caseta: înainte (conținut: "Eu sunt un element înainte"; Culoare: Var (- Culoare, roșu); Font-dimensiune: 25px;)

2) Utilizarea CSS și clase

Caseta: înainte de element; culoare: var (- culoare, roșu); font-dimensiune: 25px;) .blue (--color: albastru;) .black (--color: negru;

3) Utilizarea JavaScript

document.QuerySelectorall ("cutie"). Stil.setproperty ("- culoare", "albastru"); Document.QuerySelectorall ("cutie"). Stil.setproperty ("- culoare", "# f0f"); .Box: Înainte (Conținut: "Eu sunt un element înainte"; Culoare: Var (- Culoare, roșu); Font-dimensiune: 25px;)

4) Utilizarea jQuery

$ ("Box"). Eq (0) .css ("- culoare", "albastru"); / * Funcția CSS () cu proprietăți personalizate funcționează numai cu o vesionire JQuery\u003e \u003d 3.x cu versiune mai veche, putem folosi atributul de stil pentru a seta valoarea. Pur și simplu acordați atenție dacă v-ați definit în Alady! * / $ (". Box"). Eq (1) .Attr ("stil", "- Culoare: # F0F"); .Box: Înainte (Conținut: "Eu sunt un element înainte"; Culoare: Var (- Culoare, roșu); Font-dimensiune: 25px;)

Poate fi folosit și cu valori complexe:

Caseta (CUC: "Conținut"; --b: Gradient linear (roșu, albastru); --s: 20px; --p: 0 15px;) .box: înainte (Conținut: Var (- C); Fundal: var (- b); Culoare: #fff; font-dimensiune: Calc (2 * var (-s) + 5px); padding: var (- p);

Dacă doriți să controlați pe deplin elementele: înainte sau :: după Sudo Via CSS, puteți face JS. Vezi mai jos:

JQuery ("cap"). APPACT ("");

Rețineți că elementul