CSS translate3d() — зсув у тривимірному просторі
Опис
автор: Bond
Загальний опис
автор: NagarD
- Порада
-
Функцію
автор: Bondtranslate3d()можна використовувати разом з іншими властивостями CSS, такими як трансформації (transform), переходи (transition) або анімації (animation). - Порада
-
Функція
автор: Bondtranslate3d()є корисним інструментом для анімацій та створення тривимірних ефектів на сторінці. Вона дозволяє легко переміщувати елементи в просторі, змінюючи їх положення по трьом осях одночасно. - Нотатка
-
При використанні функції
автор: Bondtranslate3d()для зміщення елементів по осі Z, впевніться, що ви використовуєте 3D-перспективу (perspective) для створення ефекту глибини. - Нотатка
-
Зверніть увагу, що функція
автор: Bondtranslate3d()працює лише з елементами, які мають властивістьpositionвстановлену на значення, відмінне відstatic.
Синтаксис
translate3d() = translate3d( <translation-value> , <translation-value> , <length> )
Функція translate3d може отримувати єдине значення:
-
<length> -
Величина зсуву в пікселях/відсотках/відносних одиницях
автор: Bond
| Значення без задання: | translate3d(0, 0, 0) |
|---|
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| 12 | 10 | 4 | 15 | 12 | 10 |
| Переглядач | ||||
|---|---|---|---|---|
| 3 | 18 | 10 | 3.2 |
Приклади
+ запропонувати свій приклад у пісочниці
Блок зсувається на 40 пікселів вниз по осі Y.
HTML
<div id="description">
<p>Блок зсувається на 40 пікселів вниз по осі Y за допомогою функції translate3d(). Обидва блоки використовують однакові розміри для порівняння.</p>
</div>
<div id="result">
<div class="block"></div>
<div class="comparison-block"></div>
</div>
CSS
#description {
font-style: italic;
text-align: center;
line-height: 1.5;
margin-bottom: 50px;
padding: 12px 16px;
background-color: #f7f7f7;
border: 1px solid #ccc;
}
#result {
height: 200px;
background-color: #F2F2F2;
display: flex;
justify-content: space-around;
}
.block {
width: 80px;
height: 80px;
background-color: #FFC107;
transform: translate3d(0, 40px, 0);
}
.comparison-block {
width: 80px;
height: 80px;
background-color: #FF0000;
}
При наведенні курсору на блок, він зсувається на -100px по осі Z за допомогою функції translate3d().
HTML
<div id="description">
<p>При наведенні курсору на блок, він зсувається на -100px по осі Z за допомогою функції translate3d().</p>
</div>
<div id="result">
<div class="block"></div>
</div>
CSS
#description {
font-style: italic;
text-align: center;
line-height: 1.5;
margin-bottom: 50px;
padding: 12px 16px;
background-color: #f7f7f7;
border: 1px solid #ccc;
}
#result {
height: 200px;
background-color: #F2F2F2;
position: relative;
}
.block {
width: 100px;
height: 100px;
background-color: #FFC107;
position: absolute;
top: 50%;
left: 50%;
transition: transform 0.3s ease;
}
#result:hover .block {
transform: translate3d(-50%, -50%, -100px);
}
Обидві картки мають однаковий transform: translate3d(0, 0, 80px). Ліва сцена без перспективи — зміщення по Z ніяк не видно. Правій задано perspective: 400px, і та сама картка стала помітно більшою: вона наблизилась до глядача.
HTML
<div class="row">
<div class="stage">
<div class="card">без perspective</div>
</div>
<div class="stage p">
<div class="card">perspective: 400px</div>
</div>
</div>
CSS
body {
font-family: sans-serif;
font-size: 14px;
padding: 24px;
}
.row {
display: flex;
gap: 20px;
}
.stage {
display: flex;
align-items: center;
justify-content: center;
width: 230px;
height: 150px;
border: 1px solid #cfd4d9;
}
.p {
perspective: 400px;
}
.card {
display: flex;
align-items: center;
justify-content: center;
width: 120px;
height: 70px;
padding: 6px;
background: #2f6f9f;
color: #fff;
text-align: center;
transform: translate3d(0, 0, 80px);
}
Коментарі
Коментарів ще немає — будьте першим!