Rumah >hujung hadapan web >tutorial css >Fungsi transformasi 3D dalam CSS
elemen HTML boleh diubah dalam tiga dimensi:
Terdapat beberapa perkara yang perlu diperhatikan di sini:
Bahagian berikut menerangkan sifat dan fungsi transformasi 3D. Halaman demonstrasi menggambarkan bagaimana kebanyakan digunakan.
Jika dua atau lebih transformasi diperlukan, sebilangan fungsi yang dipisahkan ruang dapat ditakrifkan:
<span><span>.element</span> { </span> <span>transform: function1(parameter1, [...parameterN]); </span><span>} </span>
contohnya, untuk skala dalam satah mendatar dan mengubah secara menegak:
<span><span>.element</span> { </span> <span>transform: function1(p1, [...pN]) function2(p1, [...pN]); </span><span>} </span>
Akhirnya, Transform: Tiada; membuang semua transformasi yang ada.
<span><span>.element</span> { </span> <span>transform: scaleX(2) translateY(50px); </span><span>} </span>
fungsi terjemahan (bergerak)
Sebarang unit panjang boleh digunakan. Peratusan merujuk saiz elemen yang diubah supaya blok tinggi 100px dengan translate (80%) menggunakannya bergerak turun dengan 80 piksel.
<span>transform: translateX(50px); /* 50px to right */ </span><span>transform: translateY(-100%); /* 100% up */ </span><span>transform: translate(50px, -100%); /* both together */ </span>
bergerak ke dimensi ketiga, kita juga boleh menggunakan TranslateZ:
Diberi tiga elemen, #box1, #box2 dan #box3, benar-benar diposisikan di tempat yang sama, dengan TranslateZ (-200px) digunakan untuk #box2 dan translateZ (-400px) yang digunakan untuk #Box3. Hasilnya agak tidak membosankan:
<span>transform: translateZ(-200px); /* 200px 'into' the screen */ </span>
<span><span>#scene</span> { </span> <span>transform-style: preserve-3d; </span> <span>transform: rotateX(-10deg) rotateY(-10deg); </span><span>} </span>
harta gaya transformasi
Secara lalai (dan selalu dalam IE), gaya transformasi ditetapkan ke rata. Ini menunjukkan bahawa semua kanak -kanak yang berubah dari elemen terletak di dalam satah elemen itu sendiri. Dalam erti kata lain, unsur -unsur dalaman boleh mempunyai apa -apa transformasi yang digunakan tetapi mereka akan dimasukkan ke dalam satah rata bekas:
<span>transform: translate3d(50px, 100%, 7em); /* x, y, z axis */ </span>
Fungsi putaran
Fungsi berputar 2D () sebenarnya berputar unsur-unsur di sekitar paksi z dan sama dengan Rotatez (). Contohnya:
sudut boleh ditakrifkan dalam:
tiga paksi putaran boleh ditetapkan dengan fungsi berputar3d (). Agak mengelirukan, ia menerima empat nilai, yang menggambarkan vektor:
Masochists matematik boleh membaca butiran lengkap Rotate3D () di MDN.
Fungsi Scalex () dan scaley () meregangkan atau mengecilkan elemen dalam pesawat mendatar dan menegak dengan sewajarnya:
<span><span>.element</span> { </span> <span>transform: function1(parameter1, [...parameterN]); </span><span>} </span>
Scalez () melakukan perkara yang sama untuk satah kedalaman. Dalam contoh di atas, transformasi: Scalez (0.5); oleh itu mengurangkan jarak antara setiap elemen dengan separuh.
fungsi skala3d (x, y, z) boleh memohon skala dalam semua pesawat dalam satu arahan. Contohnya:
<span><span>.element</span> { </span> <span>transform: function1(p1, [...pN]) function2(p1, [...pN]); </span><span>} </span>
Transform Origin
Sintaks satu nilai: panjang atau peratusan asal x. Kata kunci kiri, tengah, kanan, atas atau bawah juga boleh digunakan di mana bahagian atas dan bawah menetapkan asal y dengan pusat x pusat.
penglihatan backface
Bahagian belakang boleh disembunyikan dengan menetapkan backface-visibility: tersembunyi; - Jika ia digunakan untuk #box2:
<span><span>.element</span> { </span> <span>transform: scaleX(2) translateY(50px); </span><span>} </span>
Backface-Visibility: Tersembunyi; sering digunakan untuk animasi yang melapisi kad di mana dua elemen menunjukkan bahagian depan dan belakang kad tetapi hanya satu yang dapat dilihat pada satu masa.
Contoh -contoh yang ditunjukkan di atas tidak menggunakan perspektif. Unsur bergerak lebih jauh ke dalam satah Z tetap saiz yang sama tidak kira sejauh mana ia dari penonton. Property property mungkir kepada tiada tetapi ia boleh ditetapkan kepada mana -mana panjang positif. Contohnya:
<span><span>.element</span> { </span> <span>transform: function1(parameter1, [...parameterN]); </span><span>} </span>
semakin kecil panjang perspektif, semakin dekat titik lenyap dan lebih jelas kesan 3D:
<span><span>.element</span> { </span> <span>transform: function1(p1, [...pN]) function2(p1, [...pN]); </span><span>} </span>
Perspektif Vanishing Point
x adalah kata kunci (kiri, pusat, atau kanan) atau peratusan berbanding lebar elemen (0%, 50% dan 100% bersamaan dengan kata kunci).
<span><span>.element</span> { </span> <span>transform: scaleX(2) translateY(50px); </span><span>} </span>titik lenyap bawah kanan:
<span>transform: translateX(50px); /* 50px to right */ </span><span>transform: translateY(-100%); /* 100% up */ </span><span>transform: translate(50px, -100%); /* both together */ </span>
semua bersama sekarang
Ini mungkin paling baik digunakan dalam JavaScript dan dicuba oleh mereka yang mempunyai ijazah dalam geometri! Untuk CSS, senarai fungsi transformasi mungkin lebih mudah dibaca dan dikekalkan.
Bekerja dalam tiga dimensi boleh menjadi konseptual sukar, tetapi transformasi CSS adalah laluan yang lebih mudah untuk membantah manipulasi. Halaman demonstrasi menyediakan alat interaktif yang akan membantu anda memahami bagaimana sifat dan fungsi berfungsi bersama.
Anda boleh menemui contoh-contoh yang menakjubkan dari transformasi CSS 3D, termasuk penonton realiti maya, penembak orang pertama, galeri imej dan teks menatal Star Wars. Ramai adalah demonstrasi bukti-konsep yang tidak mungkin digunakan dalam projek-projek biasa. Walau bagaimanapun, beberapa kesan 3D yang dipertingkatkan secara progresif boleh menambah dimensi lain ke laman web dan aplikasi anda.
Fungsi transformasi 3D CSS membolehkan anda memanipulasi unsur-unsur dalam ruang tiga dimensi. Fungsi asas termasuk RotatEx (), Rotatey (), Rotateez (), Translate3d (), TranslateZ (), Scale3d (), dan Perspektif (). Setiap fungsi mempunyai kesan unik pada elemen. Sebagai contoh, RotateX () berputar elemen di sekitar paksi-x, manakala translateZ () menggerakkan elemen di sepanjang paksi z. Fungsi -fungsi ini boleh digabungkan untuk mewujudkan transformasi 3D yang kompleks. jauh dari pengguna. Ia mewujudkan ilusi kedalaman dan perspektif dalam elemen transformasi 3D. Fungsi ini mengambil satu parameter, yang merupakan nilai perspektif dalam piksel. Nilai yang lebih rendah mewujudkan kesan perspektif yang lebih ketara daripada nilai yang lebih tinggi.
Atas ialah kandungan terperinci Fungsi transformasi 3D dalam CSS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!