ΠŸΠΎΠ»Π½Ρ‹ΠΉ Ρ€Π°Π·Π±ΠΎΡ€ css transform

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽ, Π΄Ρ€ΡƒΠ·ΡŒΡ, сСгодня ΠΌΡ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ css transform. А ΠΈΠΌΠ΅Π½Π½ΠΎ, Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Ρ‚Π°ΠΊΠΈΠ΅ значСния css transform, ΠΊΠ°ΠΊ: translate, rotate, scale, skew, perspective. Врансформация Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, вСдь ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈ элСмСнты, ΠΈ ΠΏΡ€ΠΈ этом Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π’Π°ΠΊ ΠΆΠ΅ ΠΏΠΎΠΊΠ°ΠΆΡƒ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ css свойства transform. НапримСр, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ элСмСнт ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ translate. Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ!

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ css transform

Π― ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ» нСбольшой Π±Π»ΠΎΠΊ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ наглядно ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎ, ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ΅ значСния рассматриваСмого Π½Π°ΠΌΠΈ свойства. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π½ΡƒΠΆΠ½ΠΎ навСсти ΠΌΡ‹ΡˆΠΊΡƒ Π½Π° Π±Π»ΠΎΠΊ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ 2d css transform

(Для Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ — Π½Π°Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΌΡ‹ΡˆΠΊΠΎΠΉ)

translateX(50px)
translateY(-50px)
translate(-50px, -50px)
scaleX(1.2)
scaleY(0.5)
scale(1.2)
scale(1.2, 0.8)
rotate(120deg)
skewX(20deg)
skewY(10deg)
skew(20deg, 20deg)
matrix(1.1, 0, -0.25, 1.1, 50, 0)

Бвойство transform: transtale

Π”Π°Π½Π½ΠΎΠ΅ свойство ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΠΌ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ элСмСнты, ΠΏΡ€ΠΈ этом Π½Π΅ влияя Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ Π±Π»ΠΎΠΊ Π½Π° нСсколько пиксСлСй Π½ΠΈΠΆΠ΅ ΠΈΠ»ΠΈ Π² сторону. ΠŸΡ€ΠΈ этом, Π΄Π°ΠΆΠ΅ Ссли Π΄Π°Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π·Π°Π΄Π΅Π½Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ повлияСт Π½Π° Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, Π° просто Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΠΎΠ²Π΅Ρ€Ρ… ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ Π½ΠΈΠΌ. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈ ΠΊΠΎΠ΄ ΠΊ Π½ΠΈΠΌ.

.block1 {
    transform: translateX(50px);
}

.block2 {
    transform: translateY(-20px);
}

.block3 {
    transform: translate(20px, 20px)
}
translateX(50px)
translateY(-20px)
translate(20px, 20px)

Бвойство transform: rotate

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ rotate ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ элСмСнт. Как ΠΈ с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ свойством — элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΏΠΎΠ²Π΅Ρ€Π½Π΅ΠΌ, Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ повлияСт Π½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ сосСднСго ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°.

.block {
    transform: rotate(10deg);
}
rotate(10deg)

CSS свойство transform-origin

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ css свойства ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚Ρƒ Ρ‚ΠΎΡ‡ΠΊΡƒ, Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ элСмСнт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ rotate. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства transform-origin Ρ€Π°Π²Π½ΠΎ center center. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Π»ΠΎΠΊ крутится Π²ΠΎΠΊΡ€ΡƒΠ³ своСго Ρ†Π΅Π½Ρ‚Ρ€Π°. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ вращСния ΠΊΠ°ΠΊ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова Π²Ρ€ΠΎΠ΄Π΅ top, left, bottom, right, center, Ρ‚Π°ΠΊ ΠΈ Ρ‡Π΅Ρ€Π΅Π· значСния Π²Ρ€ΠΎΠ΄Π΅ 50px ΠΈΠ»ΠΈ 30%.

.block 1 {
    transform-origin: top left;
}

.block2 {
    transform-origin: 100px 100px;
}

.block3 {
    transform-origin: 110% 100%;
}
transform-origin: top left;
transform-origin: 50px 50px;
transform-origin: 110% 100%;

Бвойство transform: scale

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ scale ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΊΠ°ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Ρ‚Π°ΠΊ ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ссли Π² scale ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΄ΠΈΠΌ 1.5, Ρ‚ΠΎ ΠΌΡ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ Π±Π»ΠΎΠΊ Π² 1.5 Ρ€Π°Π·Π°. Если ΠΆΠ΅ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΄ΠΈΠΌ 0.5, Ρ‚ΠΎ ΠΌΡ‹ Π΅Π³ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠΌ Π² ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ. Π’Π°ΠΊ ΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· осСй ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚.

.block1 {
    transform: scale(1.2);
}

.block2 {
    transform: scaleX(0.8);
}

.block3 {
    transform: scaleY(1.1);
}

.block4 {
    transform: scale(1.2, 0.8);
}
scale(1.2)
scaleX(0.8)
scaleY(1.1)
scale(1.2, 0.8)

Бвойство transform: skew

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ значСния для css transform ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π΅Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ наш Π±Π»ΠΎΠΊ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· осСй ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚, ΠΈΠ»ΠΈ ΠΆΠ΅ сразу ΠΏΠΎ ΠΎΠ±Π΅ΠΈΡ…. На словах слоТно ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ сразу взглянитС Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

.block1 {
    transform: skewX(20deg);
}

.block2 {
    transform: skewY(20deg);
}

.block3 {
    transform: skew(20deg, 20deg);
}
skewX(20deg)
skewY(20deg)
skew(20deg, 20deg)

Бвойство transform: matrix

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ matrix ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ для нашСго Π±Π»ΠΎΠΊΠ° сразу нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ transfrom. Π’Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² matrix Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ измСрСния. Π’Π°ΠΊ ΠΆΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΠ³Ρ€Π°Π΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚Π°ΠΊΠΎΠΉ: matrix( scaleX(), skewY(), skewX(), scaleY(), translateX(), translateY() )

.block {
    transform: matrix(1.2, 0.1, 0, 1.2, 25, 25);
}
matrix(1.2, 0.1, 0, 1.2, 25, 25)

Π›Π΅Π³ΠΊΠΈΠΉ способ Π·Π°Π΄Π°Ρ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для css transform

Если способ с matrix показался Π²Π°ΠΌ слоТным — Π½Π΅ Ρ€Π°ΡΡΡ‚Ρ€Π°ΠΈΠ²Π°ΠΉΡ‚Π΅ΡΡŒ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· Π½Π΅Π³ΠΎ. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для css transform Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ всС трансформации Π² ΠΎΠ΄Π½Ρƒ линию, Π½ΠΈΠΊΠ°ΠΊ ΠΈΡ… Π½Π΅ раздСляя.

.block {
    transform: scale(1.2) translate(30px, 30px) rotate(20deg);
}
scale(1.2)
translate(30px, 30px)
rotate(20deg)

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΊΠ° дополняСтся, ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° дня здСсь появятся ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ для 3d трансформаций)
Пока посмотритС Π²ΠΈΠ΄Π΅ΠΎ, ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΡ‚Π°Ρ‚ΡŒΡŽ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π½Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ΠΈ появятся)

БСмСнюк Назарий

Full Stack Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Frontend: Vue.js (2,3) + VueX + Vue Router, Backend: Node.js + Express.js. РаньшС Ρ€Π°Π±ΠΎΡ‚Π°Π» с РНР, WordPress, написал нСсколько ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Laravel. Π›ΡŽΠ±Π»ΡŽ ΠΏΠΎΠΌΠΎΠ³Π°Ρ‚ΡŒ людям ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅)

ΠžΡ†Π΅Π½ΠΈΡ‚Π΅ ΡΡ‚Π°Ρ‚ΡŒΡŽ

Насколько публикация ΠΏΠΎΠ»Π΅Π·Π½Π°?

НаТмитС Π½Π° Π·Π²Π΅Π·Π΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ!

БрСдняя ΠΎΡ†Π΅Π½ΠΊΠ° 4.8 / 5. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΡ†Π΅Π½ΠΎΠΊ: 34

ΠžΡ†Π΅Π½ΠΎΠΊ ΠΏΠΎΠΊΠ° Π½Π΅Ρ‚. ΠŸΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΎΡ†Π΅Π½ΠΊΡƒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ.