āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļŠāļĢāđ‰āļēāļ‡ Transform

āļŠāļĢāđ‰āļēāļ‡āđāļĨāļ°āļ”āļđāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļī CSS transform āļ”āđ‰āļ§āļĒāļ āļēāļž

CSS Transform āđ€āļ›āđ‡āļ™āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļī CSS āļ—āļĩāđˆāļ—āļĢāļ‡āļžāļĨāļąāļ‡āļ—āļĩāđˆāļŠāđˆāļ§āļĒāđƒāļŦāđ‰āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āđāļ›āļĨāļ‡āļ­āļ‡āļ„āđŒāļ›āļĢāļ°āļāļ­āļšāđ€āļ§āđ‡āļšāđƒāļ™āļžāļ·āđ‰āļ™āļ—āļĩāđˆ 2D āļŦāļĢāļ·āļ­ 3D āđ„āļ”āđ‰ āļ”āđ‰āļ§āļĒāļāļēāļĢāđāļ›āļĨāļ‡āđ€āļŠāđˆāļ™ translate, rotate, scale āđāļĨāļ° skew āļ„āļļāļ“āļŠāļēāļĄāļēāļĢāļ–āļŠāļĢāđ‰āļēāļ‡āļāļēāļĢāļ­āļ­āļāđāļšāļšāđ€āļ§āđ‡āļšāđāļšāļšāđ„āļ”āļ™āļēāļĄāļīāļāđāļĨāļ°āđ‚āļ•āđ‰āļ•āļ­āļšāđ„āļ”āđ‰ āļŠāļĢāđ‰āļēāļ‡āđ€āļ­āļŸāđ€āļŸāļāļ•āđŒāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āļ‡āđˆāļēāļĒāļ”āļēāļĒāļ”āđ‰āļ§āļĒāļāļēāļĢāđāļŠāļ”āļ‡āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒ

āļāļēāļĢāļ•āļąāđ‰āļ‡āļ„āđˆāļē Transform
āļ›āļĢāļąāļšāļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļī Transform āđāļ•āđˆāļĨāļ°āļĢāļēāļĒāļāļēāļĢ
āļ”āļđāļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡
āļ•āļĢāļ§āļˆāļŠāļ­āļšāđ€āļ­āļŸāđ€āļŸāļāļ•āđŒ Transform āļ—āļĩāđˆāļŠāļĢāđ‰āļēāļ‡āļ‚āļķāđ‰āļ™
Transform
CSS āļ—āļĩāđˆāļŠāļĢāđ‰āļēāļ‡āļ‚āļķāđ‰āļ™
transform: none;
āļ„āđˆāļēāļ—āļĩāđˆāļ•āļąāđ‰āļ‡āđ„āļ§āđ‰āļĨāđˆāļ§āļ‡āļŦāļ™āđ‰āļē
āļĨāļ­āļ‡āđƒāļŠāđ‰āļŠāđ„āļ•āļĨāđŒ Transform āļ—āļĩāđˆāļāļģāļŦāļ™āļ”āđ„āļ§āđ‰āļĨāđˆāļ§āļ‡āļŦāļ™āđ‰āļē
āļāļēāļĢāļ­āđ‰āļēāļ‡āļ­āļīāļ‡āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ Transform

āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ 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
📚 āļ„āļđāđˆāļĄāļ·āļ­ CSS Transform āļ‰āļšāļąāļšāļŠāļĄāļšāļđāļĢāļ“āđŒ
āļ„āļđāđˆāļĄāļ·āļ­āđ‚āļ”āļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āđ€āļžāļ·āđˆāļ­āđ€āļŠāļĩāđˆāļĒāļ§āļŠāļēāļ CSS Transform

ðŸŽŊ āđāļ™āļ§āļ„āļīāļ”āļžāļ·āđ‰āļ™āļāļēāļ™āļ‚āļ­āļ‡ 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 āļ‡āđˆāļēāļĒāļ‚āļķāđ‰āļ™