CSS3 animations input

Tags:    css3

Hejsa

Jeg sidder og roder med en del CSS3 i øjeblikket og er ved for alvor at få øjnene op ALLE de steder det kan lige gøre lidt for at få noget aktivitet ind som gør alt lidt mere spændende.
Sidder derfor med et lille forsøg jeg har lavet for at udforske muligheder, og er nu stødt på et sted hvor mine evner bare ikke er gode nok indenfor CSS3 endnu.

Problemet er at jeg vil lave en dynamisk liste med indhold, som skal bevæge sig forskelligt og give en effekt. Desværre kan jeg ikke finde ud af og give noget input videre til min animation, så den ved hvilken start farve den skal have.
Derfor har jeg nu to animationer, hvilket jeg synes er helt til grin, og vil jo altid gerne optimere og gøre det mere effektivt.

Så er der nogen kloge hoveder der kan hjælpe mig med at opdatere min kode så jeg kan få nogle flere parametre med ned i min animation, så jeg kan nøjes med en enkelt metode.

Se min kode: http://jsfiddle.net/z9t86xb6/7/

Blev inspireret af (transitions og ikke animations): http://www.the-art-of-web.com/css/timing-function/



4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Enig med de andre. Du kan ikke give parametre med til CSS, som sådan, men du kan overskrive individuelle parametre ved at gøre det lidt anderledes.

Det kan være lidt af en smagssag, men her er mit bud.

Du har koblet tingene meget hårdt sammen: animationsnavn, easing-funktion og tid er alt sammen koblet op på hver sin class attribut. Mit hoved siger mig at vi splitter det ad i mindre stykker og så sætter dem sammen igen på en lidt anden måde.

Idéen her er at give tingene en fornuftig default animation, og så overskrive de individuelle parametre i animationen enkeltvis, så de opfører sig lidt forskelligt. Alt bliver styret af dine class attributter.

Jeg kan sagtens forstå dit ønske om at samle alting i en animation to rule them all, men jeg tror det giver mere mening at skille det lidt ad, så du får nogle små animationer, der gør noget meget specifikt og som så kan genbruges på andre elementer. Så hvis jeg tager et skridt tilbage, så kan jeg se at vi kan skille det ad i to animationer. Én der udvider linierne og én der fader teksten ind. Det betyder også at jeg gerne vil tilføje en span rundt om teksten i linierne, så vi kan tilgå den specifikt.

Fold kodeboks ind/udHTML kode 


Jeg har også lavet lidt om på dine class attributter, som du nok kan se. Det forklarer jeg om lidt, men jeg smider lige CSS'en ind, som jeg har rodet noget mere med:

Fold kodeboks ind/udCSS kode 


Okay, jeg har samlet tingene lidt mht. Kompetence-line, og vigtigst af alt givet den en default animation, ved netop at bruge -webkit-animation.

Span-elementerne inde i Kompetence-line får sat deres tekstfarve til hvid, og så gjort gennemsigtige, i stedet for at følge baggrundsfarven. Det giver den samme effekt, men er nemmere at holde styr på. Vigtigst af alt her er at de arver alle animationsparametrene fra Kompetence-line, ved hjælp af -webkit-animation:inherit;, så easing-funktion og tid bliver den samme (ergo, de følges ad). Derefter så går vi specifikt ind og ændrer navnet (og kun navnet, ikke hele animationen) på animationen til "fade-in", så teksten fader ind, i stedet for at udvide sig.

Kig på class attributterne igen i HTML, så kan du se at de bliver brugt til at ændre på tiden (og kun tiden) og easing-funktionerne og (og kun... you get the point).

Det var lidt hurtigt smækket sammen, så det kan sikkert gøres endnu snedigere, men det er generelt en go' idé at skille tingene ad i mindre stykker, der kun gør én ting og så sætte dem sammen, så man får noget mere interessant ud af det. På den måde kan man ændre udseende og opførsel bare ved at bytte rundt på class attributterne.

Nu fik jeg sandelig også smidt alt for mange ord ind, men jeg håber du forstod det. Ellers må du skrive "A'hva?" og så skal jeg prøve at forklare mig selv.



css understøtter ikke parametre



Du skal have fat i en preprocessor her.. kig evt. på Less eller Sass



Tak Phillip

Var faktisk selv inde på noget af det samme selv efter at have skrevet her, for at gøre det mere fleksibelt, men du optimerede det ved at lave baggrundsfarven til gennemsigtig og inherit'e så man kun ændre "name" på animationen og de følges ad, men man får en anden funktion udført på teksten.
Tak det var en god hjælp



t