Laman » Pengekodan » A Look Into Transformation 2D CSS3

    A Look Into Transformation 2D CSS3

    Artikel ini adalah sebahagian daripada kami "Siri Tutorial HTML5 / CSS3" - khusus untuk membantu menjadikan anda pereka dan / atau pemaju yang lebih baik. Tekan di sini untuk melihat lebih banyak artikel dari siri yang sama.

    The Modul transformasi adalah tambahan yang luar biasa dalam CSS3, ia mengambil cara kita memanipulasi unsur-unsur di laman web ke peringkat seterusnya.

    Terdapat beberapa eksperimen yang sangat menggembirakan saya, contohnya seperti ini. Walau bagaimanapun, kami tidak akan membina sesuatu seperti ikon CSS sahaja yang entah bagaimana boleh diubah menjadi Autobot, kerana ia mungkin sangat menggalakkan dan tidak dapat digunakan dalam kehidupan sebenar juga.

    Sebaliknya, kali ini, kami akan melangkah mundur dan mengkaji semula asas-asas Transformasi CSS3 2D untuk melihat bagaimana ia berfungsi pada tahap asas.

    Sintaks

    Modul Transformasi CSS3 pada dasarnya membolehkan kita untuk mengubah elemen ke tahap tertentu seperti menerjemahkan, menaikkan, memutar dan mencondongkan.

    Sintaks rasmi ialah mengubah: kaedah (nilai). Bagaimanapun, seperti penambahan hebat CSS3 lain yang masih dalam peringkat awal, penyemak imbas semasa masih memerlukan versi sintaks untuk menjalankan transformasi. Oleh itu, sintaks lengkap akan berubah seperti ini:

     mengubah: kaedah (nilai); / * Syntax Rasmi W3C * / -o-transform: kaedah (nilai); / * Opera 10.5+ * / -ms-transform: kaedah (nilai); / * Internet Explorer 9.0+ * / -moz-transform: kaedah (nilai); / * Firefox 3.6+ * / -webkit-transform: kaedah (nilai); / * Chrome / Safari 3.2+ * / 

    Juga, kaedah yang kita rujuk di atas adalah mengubah fungsi, yang boleh digantikan dengan salah satu daripada yang berikut: menterjemah (), skala (), putar () atau condong ().

    Nilai

    Kebanyakan nilai kaedah akan bersesuaian dengan Paksi X dan Paksi Y. Sekiranya anda mengingati sistem koordinat Cartesian dari kelas Matematik anda di Sekolah Menengah, asas asasnya agak sama, paksi X mewakili mendatar garis dan paksi Y mewakili menegak talian.

    Kecuali untuk putaran. The putaran akan menggunakan koordinat kutub yang dinyatakan dalam darjah yang berkisar antara 0 hingga 360.

    Nilai untuk semua kaedah boleh menjadi negatif atau positif. Hanya mengambil nota walaupun, sebagai laman web dibaca secara berurutan dari atas ke bawah yang menjadikan paksi Y di web berfungsi bertentangan dengan prinsip asal koordinat Cartesian. Ini bermakna apabila anda menambah nilai negatif kepada Paksi Y, ia akan bergerak ke atas.

    Menggunakan Transformasi

    Sekarang, mari kita lihat demonstrasi asas berikut untuk melihat Transformasi dalam tindakan.

    Saya - Terjemahan

    Jangan diliputi oleh istilah ini menterjemah, ia tidak akan menterjemahkan bahasa asing. The menterjemah di sini sebenarnya adalah kaedah untuk menggerakkan elemen dalam beberapa arah.

    Kaedah ini mengandungi dua nilai; X dan Y. yang Nilai X seperti yang kita katakan di atas akan mengambil unsur secara mendatar; ke kiri atau ke kanan, Sementara Y nilai akan mengambil secara menegak ke bahagian bawah atau ke atas.

    Sekarang, mari lihat beberapa demonstrasi mudah di bawah:

     div width: 100px; ketinggian: 100px; ubah: menterjemah (100px, 250px);  

    Coretan di atas akan menggerakkan elemen untuk 100px ke kanan dan 250px ke bahagian bawah.

     div width: 100px; ketinggian: 100px; ubah: menterjemah (100px, 0);  

    Coretan di atas akan menggerakkan elemen ke kanan untuk 100px, kerana kita tidak menyentuh paksi Y. Kemudian, jika kita mahu memindahkan elemen ke kiri, kita hanya perlu menetapkan paksi X secara negatif, seperti berikut:

     div width: 100px; ketinggian: 100px; ubah: menterjemah (-100px, 0);  
    • Demo "Translate"

    Sebagai alternatif, kita dapat memindahkan elemen dalam satu arah dengan kaedah-kaedah individu ini; translateX () dan translateY (), perbezaannya ialah setiap kaedah tersebut hanya menerima satu nilai.

    Jadi, secara praktikal, yang ubah: menterjemah (-100px, 0) juga sama dengan mentransformasikan: translateX (-100px).

    II - Skala

    The skala kaedah membenarkan kami membesarkan atau mengurangkan unsur-unsur dari saiz sebenarnya. Nilai skala adalah sama dengan menterjemah kaedah di atas, ia juga mengandungi X dan Y. Satu-satunya perbezaan ialah kita tidak menentukan unit. Inilah contohnya:

     div width: 100px; ketinggian: 100px; mengubah: skala (1.5);  

    Contoh di atas akan membesarkannya div 1.5 atau 150% saiz sebenarnya, dan kerana kita skala sama untuk kedua-dua arah X dan Y, kita hanya perlu mengisytiharkannya dalam satu nilai. Anda juga boleh mengisytiharkannya dengan cara ini mengubah: skala (1.5,1.5); jika anda mahu pergi lebih terperinci, ia hanya akan melakukan perkara yang sama.

    Lebih-lebih lagi, jika kami ingin mengurangkan elemen yang kami gunakan secara khusus daripada 0.999 kepada mutlak 0, seperti contoh di bawah, yang akan mengurangkan saiz div bagi 50% atau separuh:

     div width: 100px; ketinggian: 100px; mengubah: skala (0.5);  

    Tetapi, berhati-hati, jika anda menetapkan nilai menjadi mutlak “0” yang div hanya akan hilang, jadi jika anda tidak mempunyai alasan yang sah untuk melakukannya, saya tidak akan mengesyorkan melakukannya.

    • Demo "Skala"

    III - Putar

    Seperti yang telah kita sebutkan tadi dalam jawatan ini, berputar kaedah menggunakan koordinat kutub, maka nilai tersebut dinyatakan dalam darjah. Berikut adalah dua contoh

    Coretan di bawah akan berputar div 30 darjah mengikut arah jam.

     div width: 100px; ketinggian: 100px; mengubah: putar (30deg);  

    Nilai negatif, seperti yang digambarkan dalam contoh di bawah, akan berputar div dalam arah yang bertentangan (berlawanan arah jam) pada tahap yang sama.

     div width: 100px; ketinggian: 100px; mengubah: putar (-30deg);  
    • Demo "Putar"

    IV - Skew

    The condong kaedah membolehkan kita mencipta sejenis selari. Ia juga mengandungi dua nilai paksi X dan Y. Walau bagaimanapun, nilai itu sendiri dinyatakan dalam ijazah, dan bukannya ukuran linear seperti yang kita gunakan untuk skala atau menterjemah kaedah. Inilah contohnya:

     div width: 200px; ketinggian: 100px; mengubah: condong (30deg, 10deg);  
    • Demo "Skew"

    V - Pelbagai kaedah

    The ubah harta tidak terhad untuk mengendalikan hanya satu kaedah, sebenarnya kita boleh memasukkan pelbagai kaedah dalam pernyataan tunggal, seperti ini:

     div width: 100px; ketinggian: 100px; ubah: translateX (100px) berputar (45deg);  

    Potongan di atas akan menggerakkan elemen 100px ke kanan dan pada masa yang sama ia juga berputar 45 darjah.

    Demo "Multiple Method".

    Transform Origin

    The transfrom-asal - seperti namanya - digunakan untuk mengawal titik permulaan transformasi. Jika kami tidak mengisytiharkan secara jelas harta ini dengan sintaks yang berikut asal-asalan: X Y;, maka penyemak imbas akan mengambil nilai lalai yang 50% untuk X dan 50% untuk Y.

    Sekarang, jika kita tentukan ubah-asal kepada 0 (X) 0 (Y) transformasi akan bermula di sebelah kiri atas.

    Sekali lagi, semua pelayar masih memerlukan versi awalan untuk memanggil harta ini. Jadi, di sini adalah versi lengkap untuk memastikan ia berfungsi dalam penyemak imbas yang paling terkini:

     -webkit-transform-origin: X Y; -moz-transform-origin: X Y; -o-transform-asal: X Y; -ms-transform-origin: X Y; asal-asalan: X Y; 
    • Demo "Transformasi asal"

    Kesimpulannya

    Kami telah melalui semua empat kaedah transformasi penting; menterjemah, skala, berputar dan condong

    Walau bagaimanapun, seperti yang dinyatakan, modul ini masih dalam peringkat awal, jadi jika anda akan menerapkan kaedah ini di laman web seterusnya, pastikan ia merendahkan semangat untuk penyemak imbas yang tidak serasi (saya tidak merujuk kepada IE6 di sini).

    Terakhir, anda boleh melihat semua demo atau memuat turun sumber dari pautan berikut.

    • Demo
    • Muat turun Sumber