āđāļāļĢāļ·āđāļāļāļŠāļĢāđāļēāļ Transform
āļŠāļĢāđāļēāļāđāļĨāļ°āļāļđāļāļąāļ§āļāļĒāđāļēāļāļāļļāļāļŠāļĄāļāļąāļāļī CSS transform āļāđāļ§āļĒāļ āļēāļ
CSS Transform āđāļāđāļāļāļļāļāļŠāļĄāļāļąāļāļī CSS āļāļĩāđāļāļĢāļāļāļĨāļąāļāļāļĩāđāļāđāļ§āļĒāđāļŦāđāļāļļāļāļŠāļēāļĄāļēāļĢāļāđāļāļĨāļāļāļāļāđāļāļĢāļ°āļāļāļāđāļ§āđāļāđāļāļāļ·āđāļāļāļĩāđ 2D āļŦāļĢāļ·āļ 3D āđāļāđ āļāđāļ§āļĒāļāļēāļĢāđāļāļĨāļāđāļāđāļ translate, rotate, scale āđāļĨāļ° skew āļāļļāļāļŠāļēāļĄāļēāļĢāļāļŠāļĢāđāļēāļāļāļēāļĢāļāļāļāđāļāļāđāļ§āđāļāđāļāļāđāļāļāļēāļĄāļīāļāđāļĨāļ°āđāļāđāļāļāļāđāļāđ āļŠāļĢāđāļēāļāđāļāļāđāļāļāļāđāļāļĩāđāļāđāļāļāļāļēāļĢāđāļāđāļāļĒāđāļēāļāļāđāļēāļĒāļāļēāļĒāļāđāļ§āļĒāļāļēāļĢāđāļŠāļāļāļāļąāļ§āļāļĒāđāļēāļāđāļāļāđāļĢāļĩāļĒāļĨāđāļāļĄāđ
transform: none;āļāļąāļāļāđāļāļąāļ Transform
- âĒ translate(x, y): translate(x, y): āļĒāđāļēāļĒāļāļāļāđāļāļĢāļ°āļāļāļāļāļēāļĄāļāļģāļāļ§āļ x, y
- âĒ scale(x, y): scale(x, y): āļāļĢāļąāļāļāļāļēāļāļāļāļāđāļāļĢāļ°āļāļāļāļāļēāļĄāļāļąāļāļĢāļēāļŠāđāļ§āļ x, y
- âĒ rotate(angle): rotate(angle): āļŦāļĄāļļāļāļāļāļāđāļāļĢāļ°āļāļāļāļāļēāļĄāļĄāļļāļĄ
- âĒ skew(x, y): skew(x, y): āļāļīāļāđāļāļ·āļāļāļāļāļāđāļāļĢāļ°āļāļāļāļāļēāļĄāļāļāļĻāļē x, y
āđāļāļĨāđāļāļĨāļąāļāļāļēāļĢāđāļāđāļāļēāļ
- âĒ āļŠāļēāļĄāļēāļĢāļāļĢāļ§āļĄāļāļąāļāļāđāļāļąāļ Transform āļŦāļĨāļēāļĒāļāļąāļāļāđāļāļąāļāđāļāđāđāļāļĒāļāļąāđāļāļāđāļ§āļĒāļāđāļāļāļ§āđāļēāļ
- âĒ āđāļāļĨāļĩāđāļĒāļāļāļļāļāļāļģāđāļāļīāļāļāļēāļĢāđāļāļĨāļāļāđāļ§āļĒ transform-origin
- âĒ āđāļāđāļĢāđāļ§āļĄāļāļąāļ transition āđāļāļ·āđāļāļŠāļĢāđāļēāļāđāļāļāđāļāļāļāđāđāļāļāļīāđāļĄāļāļąāļāļāļĩāđāļĢāļēāļāļĢāļ·āđāļ
- âĒ āđāļāđāļāļļāļāļŠāļĄāļāļąāļāļī perspective āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāđāļāļĨāļ 3D
ðŊ āđāļāļ§āļāļīāļāļāļ·āđāļāļāļēāļāļāļāļ Transform
CSS Transform āđāļāđāļāļāļļāļāļŠāļĄāļāļąāļāļī CSS āļāļĩāđāđāļāļĨāļĩāđāļĒāļāļĢāļđāļāļĢāđāļēāļ āļāļāļēāļ āđāļĨāļ°āļāļģāđāļŦāļāđāļāļāļāļāļāļāļāđāļāļĢāļ°āļāļāļ āļāđāļ§āļĒāđāļŦāđāļŠāļēāļĄāļēāļĢāļāđāļāļĨāļāļāļāļāđāļāļĢāļ°āļāļāļāļāđāļ§āļĒāļ āļēāļāđāļāļĒāđāļĄāđāļĢāļāļāļ§āļāļāļēāļĢāđāļŦāļĨāļāļāļāđāļāļāļŠāļēāļĢāļāļāļāļī
āđāļ§āļĒāļēāļāļĢāļāđāļāļ·āđāļāļāļēāļ:
transform: function(value) function(value) ...;ð āļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļāļąāļāļāđāļāļąāļ Transform
ð Translate (āļāļēāļĢāđāļāļĨāļ·āđāļāļāļāļĩāđ)
- âĒ
translate(x, y): translate(x, y): āļĒāđāļēāļĒāļāļēāļĄāđāļāļ X, Y - âĒ
translateX(x): translateX(x): āļĒāđāļēāļĒāļāļēāļĄāđāļāļ X āđāļāđāļēāļāļąāđāļ - âĒ
translateY(y): translateY(y): āļĒāđāļēāļĒāļāļēāļĄāđāļāļ Y āđāļāđāļēāļāļąāđāļ - âĒ
translate3d(x, y, z): translate3d(x, y, z): āļāļēāļĢāđāļāļĨāļ·āđāļāļāļāļĩāđ 3D
transform: translate(50px, 100px);ð Scale (āļāļēāļĢāļāļĢāļąāļāļāļāļēāļ)
- âĒ
scale(x, y): scale(x, y): āļāļĢāļąāļāļāļāļēāļāđāļāļ X, Y - âĒ
scaleX(x): scaleX(x): āļāļĢāļąāļāļāļāļēāļāđāļāļ X āđāļāđāļēāļāļąāđāļ - âĒ
scaleY(y): scaleY(y): āļāļĢāļąāļāļāļāļēāļāđāļāļ Y āđāļāđāļēāļāļąāđāļ - âĒ āļĄāļēāļāļāļ§āđāļē 1 āļāļĒāļēāļĒ, āļāđāļāļĒāļāļ§āđāļē 1 āļĒāđāļ
transform: scale(1.5, 0.8);ð Rotate (āļāļēāļĢāļŦāļĄāļļāļ)
- âĒ
rotate(angle): rotate(angle): āļŦāļĄāļļāļāļĢāļāļāđāļāļ Z - âĒ
rotateX(angle): rotateX(angle): āļŦāļĄāļļāļāļĢāļāļāđāļāļ X - âĒ
rotateY(angle): rotateY(angle): āļŦāļĄāļļāļāļĢāļāļāđāļāļ Y - âĒ āđāļāđāļŦāļāđāļ§āļĒ deg, rad, turn āļŠāļģāļŦāļĢāļąāļāļĄāļļāļĄ
transform: rotate(45deg);ð Skew (āļāļēāļĢāđāļāļ·āļāļ)
- âĒ
skew(x, y): skew(x, y): āđāļāļ·āļāļāļāļēāļĄāđāļāļ X, Y - âĒ
skewX(angle): skewX(angle): āđāļāļ·āļāļāļāļēāļĄāđāļāļ X - âĒ
skewY(angle): skewY(angle): āđāļāļ·āļāļāļāļēāļĄāđāļāļ Y - âĒ āđāļāļĨāļāđāļāđāļāļĢāļđāļāļĢāđāļēāļāļŠāļĩāđāđāļŦāļĨāļĩāđāļĒāļĄāļāđāļēāļāļāļāļēāļ
transform: skew(15deg, 5deg);ðĻ Transform Origin (āļāļļāļāđāļāļĨāļ)
āļāļļāļāļŠāļĄāļāļąāļāļī transform-origin āļāļģāļŦāļāļāļāļļāļāļāļģāđāļāļīāļāļāļēāļĢāđāļāļĨāļ āļāđāļēāđāļĢāļīāđāļĄāļāđāļāļāļ·āļāļĻāļđāļāļĒāđāļāļĨāļēāļāļāļāļāļāļāļāđāļāļĢāļ°āļāļāļ (50% 50%)
āļāļēāļĢāđāļāđāļāļģāļŦāļĨāļąāļ
transform-origin: top left;āļāļēāļĢāđāļāđāđāļāļāļĢāđāđāļāđāļāļāđ
transform-origin: 25% 75%;āļāļēāļĢāđāļāđāļāļīāļāđāļāļĨ
transform-origin: 10px 20px;⥠āđāļāļĨāđāļāļĨāļąāļāļāļēāļĢāđāļāļīāđāļĄāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ
â āļāļģāđāļāļ°āļāļģ
- âĒ āļŠāļĢāđāļēāļāđāļāļāļīāđāļĄāļāļąāļāđāļāļāļēāļ° transform āđāļĨāļ° opacity
- âĒ āđāļāđāļāļļāļāļŠāļĄāļāļąāļāļī will-change
- âĒ āđāļāđāļāļēāļĢāđāļĢāđāļāļāļ§āļēāļĄāđāļĢāđāļ§ 3D (translateZ(0))
- âĒ āļŠāļĢāđāļēāļāđāļĨāđāļĒāļāļĢāđāļāļāļĄāđāļāļŠāļīāļāđāļāļ·āđāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļāļĩāđāļāļĩāļāļķāđāļ
â āļŠāļīāđāļāļāļĩāđāļāļ§āļĢāļŦāļĨāļĩāļāđāļĨāļĩāđāļĒāļ
- âĒ āļāļēāļĢāļŠāļĢāđāļēāļāđāļāļāļīāđāļĄāļāļąāļāļāļ§āļēāļĄāļāļ§āđāļēāļ, āļāļ§āļēāļĄāļŠāļđāļ
- âĒ āļāļēāļĢāļŠāļĢāđāļēāļāđāļāļāļīāđāļĄāļāļąāļāļāļģāđāļŦāļāđāļāļāđāļēāļĒ, āļāļ
- âĒ āļāļēāļĢāļāđāļāļ transform āļāļĩāđāļĄāļēāļāđāļāļīāļāđāļ
- âĒ āļāļēāļĢāđāļāđ will-change āļāļĩāđāđāļĄāđāļāļģāđāļāđāļ
āļāļąāļ§āļāļĒāđāļēāļāļāļēāļĢāđāļāļīāđāļĄāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ:
.optimized {
will-change: transform;
transform: translateZ(0); /* 3D ę°ė */
transition: transform 0.3s ease;
}ðŽ āđāļāļāļīāđāļĄāļāļąāļāđāļĨāļ°āļāļēāļĢāđāļāļĨāļĩāđāļĒāļāļāđāļēāļ
Transform āļŠāļēāļĄāļēāļĢāļāđāļāđāļĢāđāļ§āļĄāļāļąāļ CSS Transition āđāļĨāļ° Animation āđāļāļ·āđāļāļŠāļĢāđāļēāļāđāļāļāđāļāļāļāđāļāļĩāđāļĢāļēāļāļĢāļ·āđāļ
āļāļąāļ§āļāļĒāđāļēāļ Transition
.hover-effect {
transition: transform 0.3s ease;
}
.hover-effect:hover {
transform: scale(1.1) rotate(5deg);
}āļāļąāļ§āļāļĒāđāļēāļ Keyframe Animation
@keyframes bounce {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-20px); }
}
.bounce { animation: bounce 1s infinite; }ð āļāļ§āļēāļĄāđāļāđāļēāļāļąāļāđāļāđāļāļāļāđāļāļĢāļēāļ§āđāđāļāļāļĢāđ
CSS Transform āļĢāļāļāļĢāļąāļāđāļāđāļāļĢāļēāļ§āđāđāļāļāļĢāđāļŠāļĄāļąāļĒāđāļŦāļĄāđāļāļąāđāļāļŦāļĄāļ āđāļāđāđāļāļĢāļēāļ§āđāđāļāļāļĢāđāļĢāļļāđāļāđāļāđāļēāļāļēāļāļāđāļāļāđāļāđāļāļģāļāļģāļŦāļāđāļēāļāļđāđāļāļēāļĒ
āļāļąāļ§āļāļĒāđāļēāļāļāļģāļāļģāļŦāļāđāļēāļāļđāđāļāļēāļĒ:
-webkit-transform: rotate(45deg); /* Safari, Chrome */
-moz-transform: rotate(45deg); /* Firefox */
-ms-transform: rotate(45deg); /* IE 9 */
transform: rotate(45deg); /* íėĪ */ðŊ āļāļąāļ§āļāļĒāđāļēāļāļāļēāļĢāđāļāđāļāļēāļāļāļĢāļīāļ
āđāļāļāđāļāļāļāđāđāļŪāđāļ§āļāļĢāđāļāļāļāļāļēāļĢāđāļ
.card {
transition: transform 0.3s ease;
cursor: pointer;
}
.card:hover {
transform: translateY(-10px) scale(1.02);
}āļāļąāļ§āļŦāļĄāļļāļāđāļŦāļĨāļ
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.spinner {
animation: spin 1s linear infinite;
}āđāļāļāđāļāļāļāđāļāļēāļĢāđāļāđāļēāļāļāļāđāļĄāļāļāļĨ
.modal {
transform: scale(0) rotate(180deg);
transition: transform 0.3s ease;
}
.modal.show {
transform: scale(1) rotate(0deg);
}āđāļāļāđāļāļāļāđāļāļēāļĢāļāļĨāļīāļāļāļļāđāļĄ
.button {
transition: transform 0.1s ease;
}
.button:active {
transform: scale(0.95);
}ð§ āđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļĩāļāļąāļāđāļĨāļ°āļāļēāļĢāļāļąāļāļāļē
āđāļāļĢāļ·āđāļāļāļĄāļ·āļāļŠāļģāļŦāļĢāļąāļāļāļąāļāļāļąāļāļāļēāđāļāļĢāļēāļ§āđāđāļāļāļĢāđ
- âĒ āļāļēāļĢāđāļāđāđāļāđāļāļāđāļĢāļĩāļĒāļĨāđāļāļĄāđāđāļāđāļāļ Elements
- âĒ āļāļĢāļ§āļāļŠāļāļāļāđāļēāļŠāļļāļāļāđāļēāļĒāđāļāđāļāđāļ Computed
- âĒ āļāļēāļĢāļ§āļīāđāļāļĢāļēāļ°āļŦāđāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāļāđāļ§āļĒāđāļāđāļ Performance
- âĒ āļāļĢāļ§āļāļŠāļāļāđāļāļĢāļāļŠāļĢāđāļēāļāđāļĨāđāļĒāļāļĢāđāļāđāļ§āļĒ 3D View
āļāļļāļāļŠāļĄāļāļąāļāļī CSS āļāļĩāđāļĄāļĩāļāļĢāļ°āđāļĒāļāļāđ
- âĒ
transform-style: preserve-3d - âĒ
perspective: 1000px - âĒ
backface-visibility: hidden - âĒ
will-change: transform
ðĄ āđāļāļĨāđāļāļĨāļąāļāļĄāļ·āļāļāļēāļāļĩāļ
āđāļāļĨāđāļāļĨāļąāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ
āļāļēāļĢāđāļāđ transform3d() āļŦāļĢāļ·āļ translateZ(0) āđāļāļ·āđāļāļŠāļĢāđāļēāļāđāļĨāđāļĒāļāļĢāđāļāļāļĄāđāļāļŠāļīāļāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāđāļĢāđāļāļāļ§āļēāļĄāđāļĢāđāļ§ GPU āļŠāļēāļĄāļēāļĢāļāļāļĢāļąāļāļāļĢāļļāļāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļāđāļāļāļīāđāļĄāļāļąāļāđāļāđāļāļĒāđāļēāļāļĄāļēāļ
āđāļāļĨāđāļāļĨāļąāļāļāļēāļĢāđāļāđāļēāļāļķāļ
āđāļāđ media query prefers-reduced-motion āđāļāļ·āđāļāđāļŦāđāļāļēāļāđāļĨāļ·āļāļāļŠāļģāļŦāļĢāļąāļāļāļđāđāđāļāđāļāļĩāđāđāļ§āļāđāļāļāļēāļĢāđāļāļĨāļ·āđāļāļāđāļŦāļ§
āđāļāļĨāđāļāļĨāļąāļāļāļēāļĢāļāļāļāđāļāļ
āļāļēāļĢāļāļąāđāļāļāđāļē transform-origin āļāļĒāđāļēāļāđāļŦāļĄāļēāļ°āļŠāļĄāļŠāļēāļĄāļēāļĢāļāļŠāļĢāđāļēāļāđāļāļāđāļāļāļāđāļāļēāļĢāđāļāļĨāļāļāļĩāđāđāļāđāļāļāļĢāļĢāļĄāļāļēāļāļīāļĄāļēāļāļāļķāđāļ
āđāļāļĨāđāļāļĨāļąāļāļāļēāļĢāļāļąāļāļāļē
āļāļēāļĢāđāļāđāļāļąāļ§āđāļāļĢ CSS āđāļāļ·āđāļāļāļ§āļāļāļļāļĄāļāđāļē transform āđāļāļāđāļāļāļēāļĄāļīāļāļāļģāđāļŦāđāļāļēāļĢāļĢāļ§āļĄ JavaScript āļāđāļēāļĒāļāļķāđāļ