Domača » Kodiranje » Ustvarjanje naprednega »Marquee« z animacijo CSS3

    Ustvarjanje naprednega »Marquee« z animacijo CSS3

    Ta članek je del našega "Serija vadnic HTML5 / CSS3" - namenjen vam je za boljšega oblikovalca in / ali razvijalca. Klikni tukaj da si ogledate več člankov iz iste serije.

    Danes si bomo ogledali “šotor” ponovno. Pravzaprav smo o tem razpravljali v prejšnji objavi, ki je govorila o uporabi -webkit-marquee tokrat bomo obravnavali to temo malo dlje.

    V tej objavi bomo ustvarili a podoben okvirju učinka z uporabo animacije CSS3. Na ta način bomo lahko dodali še več funkcionalnosti, ki jih ni mogoče doseči le z -webkit-marquee.

    Razen če ste že seznanjeni z modulom CSS3 Animacija, vam priporočamo, da si pred nadaljevanjem s to dokumentacijo ogledate naslednje reference:

    • CSS3 animacije - W3School
    • CSS animacije - Mozilla Dev. Omrežje

    Upoštevajte tudi, da CSS3 Animacija trenutno deluje samo v Firefox 8+, Chrome 12+ in Safari 5.0+ s predpono (-moz- in -webkit-). Vendar pa bomo uradno verzijo iz W3C uporabljali samo brez predpone, da bi se izognili prekoračitvi tega članka z odvečno kodo.

    Obravnavanje izdaje Marquee

    Ena od težav pri označevanju je, da se besedilo nenehno premika. Takšno vedenje moti branje, besedilo pa je tudi težko brati. Tokrat bomo skušali ustvariti lastno različico oznake in jo narediti uporabniku prijaznejšo. Na primer; namesto da se besedilo premika neprekinjeno, ustavili jo bomo, ko bo popolnoma viden, tako da bo uporabnik za trenutek prebral besedilo.

    Storyboard (vrsta)

    Vsako ustvarjalno in oblikovalno oblikovanje, kot je logotip, ilustracija ali spletna stran, se običajno začne s skico. Na področju produkcije animacije se to izvede s snemalno knjigo. Preden začnemo s katerimkoli kodiranjem, bomo najprej ustvarili nekakšno snemalno knjigo, da nam pomagate vizualizirati našo animacijo.

    Kot lahko vidite iz zgornje zgodbe o snemanju, nameravamo prikazati samo dve vrstici besedila, ki se bosta premaknili zaporedno od desne proti levi.

    Naša snemalna knjiga ni tako zapletena kot snemalna knjiga za pravi animirani film, vendar je bistvo: zdaj lahko prikažemo, kako bo izgledal naš okvir.

    Oznaka HTML

    Ker bo naša animacija preprosta, bo tudi oznaka HTML preprosta:

     

    Kako dodati WordPress Podobni Posts brez dodatkov

    Avtomatizirajte vaše Dropbox datoteke z dejanji

    Osnovni slogi

    Preden se lotimo animacije, dodamo nekaj osnovnih slogov. Začnimo z dodajanjem teksture ozadja za html element.

     html ozadje: url ('… /images/skewed_print.png'); 

    Nato bomo postavili oznako v središče okna brskalnika in dodali nekaj podrobnosti, kot so notranja senca, barva ozadja in obrobe.

     .marquee širina: 500px; višina: 50px; margin: 25px auto; overflow: hidden; položaj: relativna; obroba: 1px solid # 000; margin: 25px auto; barva ozadja: # 222; -webkit-border-radius: 5px; obrobni polmer: 5px; -webkit-box-shadow: vložek 0px 2px 2px rgba (0, 0, 0, 5), 0px 1px 0px rgba (250, 250, 250, .2); box-shadow: vložek 0px 2px 2px rgba (0, 0, 0, .5), 0px 1px 0px rgba (250, 250, 250, .2); 

    Potem bomo postavili besedilo - ki je v tem primeru ovito znotraj oznake odstavka - absolutno in od absolutno položaj povzroči, da se element zruši, moramo določiti element širine 100% tako, da pokrije širino svojih staršev.

     .šotor p položaj: absolutno; družina pisav: Tahoma, Arial, sans-serif; širina: 100%; višina: 100%; margin: 0; višina vrstice: 50px; text-align: center; barva: #fff; text-shadow: 1px 1px 0px # 000000; filter: dropshadow (barva = # 000000, offx = 1, offy = 1); 

    Poglejmo si rezultat za nekaj časa.

    Na tej točki smo naredili vse osnovne sloge, ki jih potrebujemo; lahko dodate več ali prilagodite sloge. Predlagamo vam, da se držite določene dimenzije (višina in širina) do konca vadnice.

    Animacija

    Na kratko, animacija je predstavitev premikajočih se predmetov. Vsako gibanje je določeno v časovnem okviru. Torej, ko delamo na animaciji, se večinoma ukvarjamo z Čas. Upoštevamo zadeve, kot so:

    • Ko se objekt začne premikati?
    • Kako dolgo traja, da se objekt premakne iz ene točke v drugo?
    • Kdaj in kako dolgo naj ostane predmet na določeni točki?

    V CSS3 Animacija, čas lahko določite z @keyframe skladnjo. Toda, preden skočimo v ta del, najprej določimo začetno pozicijo besedila.

    Načrtovali smo, da se bo besedilo začelo z desne, nato pa v desno. Torej ga bomo najprej pozicionirali desno z lastnostjo CSS3 Transformation.

     .marquee p transform: translateX (100%); 

    Ne pozabite 100% ki smo ga definirali za naš odstavek, element je bil enak svojemu nadrejenemu premer. Torej bo tudi tukaj uporabljeno isto; element odstavka bo prevedeno v desno za 100% ki je v tem primeru enaka 500px.

    Ključni okvirji

    The @keyframe Sintaksa je lahko za nekatere ljudi malce zmedena, zato smo tukaj ustvarili preprost vizualni vodnik, ki vam pomaga zlahka razumeti, kaj se dogaja v @keyframe skladnjo.

    Kliknite tukaj za večjo različico.

    Celotna animacija bo trajala približno 20 sekund in je razdeljen na dva zaporedja, ki trajajo 10 sekund vsak.

    V prvem zaporedju se bo prvo besedilo takoj pomaknilo z desne strani in bo za trenutek ostalo vidno, da bo uporabnik lahko prebral besedilo, drugo besedilo pa bo ostalo skrito. V drugem zaporedju se bo besedilo prvega okvirja pomaknilo na levo, drugo besedilo pa se bo takoj pomaknilo v desno.

    Tukaj so vse ključne kode, ki jih moramo uporabiti za izvajanje animacije.

     @keyframes left-one 0% transform: translateX (100%);  10% transform: translateX (0);  40% transform: translateX (0);  50% transform: translateX (-100%);  100% transform: translateX (-100%);  @keyframes levo-dva 0% transform: translateX (100%);  50% transform: translateX (100%);  60% transform: translateX (0);  90% transform: translateX (0);  100% transform: translateX (-100%); 

    The levo ključni kadri bodo določili prvo zaporedje animacije, medtem ko bo levo-dva ključni kadri bodo določili drugo zaporedje.

    Uporaba animacije za elemente

    Da bi animacija delovala, ne pozabite uporabiti animacije na element. Prvo zaporedje se uporablja za prvo besedilo ali v tem primeru prvi odstavek in drugo zaporedje se uporablja tudi za drugi odstavek.

     .marquee p: nth-otrok (1) animacija: levi 20-letnik je neskončen;  .marquee p: nth-otrok (2) animacija: leva-dva 20-ih sta enostavna; 

    Vsi smo končali z našo animacijo; Oglejmo si rezultate v brskalniku.

    • Demo
    • Prenesi vir

    Bonus

    Prav tako lahko definiramo besedilo za označevanje, ki ga premaknete od zgoraj navzdol ali obratno, prav tako kot v prejšnji objavi. Tukaj je, kako to storiti; nadomestite zgornje kode za animacije s to spodnjo oznako premaknite besedilo navzdol:

     .marquee p transform: translateY (-100%);  @keyframes down-one 0% transform: translateY (-100%);  10% transform: translateY (0);  40% transform: translateY (0);  50% transform: translateY (100%);  100% transform: translateY (100%);  @keyframes navzdol-dva 0% transform: translateY (-100%);  50% transform: translateY (-100%);  60% transform: translateY (0);  90% transform: translateY (0);  100% transform: translateY (100%); 

    Opazite, da smo spremenili Os X do Y-os in obrni vse prevod negativna vrednost na pozitivno in obratno.

    Imamo tudi preimenovala Animacijo do dol in dol-dva, zato moramo ponovno uporabiti ime animacije tudi v elementu odstavka.

     .marquee p: nth-otrok (1) animacija: navzdol-ena 20-letnica je neskončna;  .marquee p: nth-otrok (2) animation: navzdol-dva 20-ih let je neskončen; 

    Ali pa, če ga želite premakniti nasprotno; od spodaj navzgor. Tukaj so vse kode, ki jih morate uporabiti:

     .marquee.up p transform: translateY (100%);  .marquee.up p: nth-otrok (1) animation: up-one 20-ih let je neskončen;  .marquee.up p: nth-otrok (2) animation: up-two 20s lahkotno neskončno;  @keyframes up-one 0% transform: translateY (100%);  10% transform: translateY (0);  40% transform: translateY (0);  50% transform: translateY (-100%);  100% transform: translateY (-100%);  @keyframes up-two 0% transform: translateY (100%);  50% transform: translateY (100%);  60% transform: translateY (0);  90% transform: translateY (0);  100% transform: translateY (-100%); 
    • Demo
    • Prenesi vir

    Zaključek

    Kljub pomanjkanju trenutne podpore brskalniku, bo CSS3 Animation, če bo pravilno izvedena, nedvomno rešila številna vprašanja uporabnosti v prihodnosti, kot smo to storili v tem primeru. Če potrebujemo samo kratko animacijo, namenjeno sodobnim brskalnikom, je uporaba CSS3 Animacije verjetno boljša od nalaganja jQuery skripta..

    Nazadnje se zavedamo, da je ta članek za nekatere ljudi malce pretresen, zato ga, če imate kakršna koli vprašanja v zvezi s tem členom, lahko objavite v razdelku za komentarje spodaj..