⇧
vadnica-logo
Editor Moj Blog Geselnik Finance Moje storitve O projektu Telegram O meni O meni

CSS Animacije, 2D in 3D Preoblikovanja ter Prehodi

CSS preoblikovanja (Transform) omogočajo spreminjanje oblike in položaja elementov brez vpliva na okoliške elemente. Z 2D preoblikovanji lahko elemente premaknemo (translate), zavrtimo (rotate), spremenimo velikost (scale) in nagnemo (skew). Z 3D preoblikovanji dodamo še globino – elemente lahko vrtimo okoli X in Y osi ter ustvarimo realistične prostorske učinke s pomočjo lastnosti perspective.

CSS prehodi (Transition) omogočajo gladke spremembe med dvema stanjema elementa – na primer, ko uporabnik premakne miško čez gumb (:hover). Namesto nenadne spremembe se lastnost prehaja postopoma čez določen čas. Prehodi so preprosti za uporabo in ne zahtevajo znanja JavaScripta.

CSS animacije (Animation) pa še korak dlje: omogočajo zapletene zaporedne spremembe sloga, definirane s ključnimi sličicami (@keyframes). Z njimi lahko ustvarimo gibanje, ki se ponavlja, traja poljubno dolgo in vsebuje poljubno mnogo vmesnih točk. Animacije imajo tri ključne prednosti: so preproste za uporabo, ne potrebujejo JavaScripta in jih brskalnik lahko optimizira za boljšo zmogljivost – tudi kadar je zavihek v ozadju.

PRIMER
REZULTAT
Lastnost Primer Opis
2D Preoblikovanja (Transform)
translate(x, y)transform: translate(50px, 100px); Premakne element vzdolž X in Y osi
translateX(n)transform: translateX(50px); Premakne element vzdolž X osi
translateY(n)transform: translateY(100px); Premakne element vzdolž Y osi
rotate(kot)transform: rotate(45deg); Zavrti element za določen kot
scale(x, y)transform: scale(2, 1.5); Spremeni velikost elementa (širina, višina)
scaleX(n)transform: scaleX(2); Spremeni širino elementa
scaleY(n)transform: scaleY(1.5); Spremeni višino elementa
skew(x-kot, y-kot)transform: skew(20deg, 10deg); Nagne element vzdolž X in Y osi
skewX(kot)transform: skewX(20deg); Nagne element vzdolž X osi
skewY(kot)transform: skewY(10deg); Nagne element vzdolž Y osi
matrix(n,n,n,n,n,n)transform: matrix(1,0,0,1,50,100); 2D preoblikovanje z 6 vrednostmi (napredno)
3D Preoblikovanja (Transform)
perspective(n)perspective: 500px; Določi globino perspektive za 3D učinek
translate3d(x, y, z)transform: translate3d(50px, 0, 100px); Premakne element v 3D prostoru
translateZ(z)transform: translateZ(100px); Premakne element vzdolž Z osi (globina)
rotateX(kot)transform: rotateX(60deg); Vrti element okoli X osi (horizontalno)
rotateY(kot)transform: rotateY(60deg); Vrti element okoli Y osi (vertikalno)
rotateZ(kot)transform: rotateZ(45deg); Vrti element okoli Z osi (enako kot 2D rotate)
rotate3d(x, y, z, kot)transform: rotate3d(1, 1, 0, 45deg); Vrti element okoli poljubne 3D osi
scale3d(x, y, z)transform: scale3d(1.5, 1.5, 2); Spremeni velikost v 3D prostoru
scaleZ(z)transform: scaleZ(2); Spremeni velikost vzdolž Z osi
matrix3d(...)transform: matrix3d(...); 3D preoblikovanje z 16 vrednostmi (napredno)
transform-styletransform-style: preserve-3d; Ohrani 3D prostor za podrejene elemente
backface-visibilitybackface-visibility: hidden; Skrije ali pokaže zadnjo stran elementa
Prehodi (Transition)
transitiontransition: all 0.3s ease; Skrajšana lastnost za vse transition vrednosti
transition-propertytransition-property: transform; Določi, katera lastnost se prehaja
transition-durationtransition-duration: 0.5s; Določi trajanje prehoda
transition-timing-functiontransition-timing-function: ease-in-out; Določi krivuljo hitrosti (ease, linear, ease-in, ease-out, ease-in-out)
transition-delaytransition-delay: 0.2s; Določi zamik pred začetkom prehoda
Animacije (Animation)
@keyframes@keyframes ime { from {} to {} } Definira ključne sličice animacije
animationanimation: ime 2s ease infinite; Skrajšana lastnost za vse animation vrednosti
animation-nameanimation-name: premik; Določi ime animacije (povezava z @keyframes)
animation-durationanimation-duration: 2s; Določi trajanje enega cikla animacije
animation-timing-functionanimation-timing-function: ease; Določi krivuljo hitrosti animacije
animation-delayanimation-delay: 1s; Določi zamik pred začetkom animacije
animation-iteration-countanimation-iteration-count: infinite; Določi število ponovitev (število ali infinite)
animation-directionanimation-direction: alternate; Določi smer predvajanja (normal, reverse, alternate, alternate-reverse)
animation-fill-modeanimation-fill-mode: forwards; Določi slog elementa po koncu animacije (none, forwards, backwards, both)
animation-play-stateanimation-play-state: paused; Ustavi ali nadaljuje animacijo (running, paused)