Apa yang ada di tanah yang menggambarkan “spesies” dalam menampilkan transformasi?

Pernahkah Anda menemukan sesuatu yang baru dan pergi mencarinya hanya untuk menemukan bahwa ada informasi kecil tentang itu? Ini adalah perasaan yang beragam: membingungkan dan terhambat karena tidak ada arah yang jelas, tetapi juga menyenangkan karena cenderung baru bagi banyak orang, bukan hanya Anda. Sesuatu seperti ini terjadi pada saya saat menulis entri Almanac ke@view-transitionAt-sty dan itstypesMenggambarkan.

Anda mungkin sudah tahu tentang transisi silang -show: dengan beberapa baris CSS, ini memungkinkan transfer antara dua halaman, yang di masa lalu membutuhkan satu kerangka kerja dengan aspek perpustakaan animasi. Dengan kata lain, banyak skrip Java.

Untuk memulai transfer dua halaman, kita harus mengontrol@view-transition BasisnavigationDijelaskanautoDi kedua halaman, ini memberi kita transisi yang lancar antara kedua halaman. Karena itu, dengan halaman lama memudar, halaman baru memudar.

-Advertisement-.


@view-transition {
  navigation: auto;
}

Itu saja! DannavigationItu adalah satu -satunya deskripsi yang kita butuhkan. Faktanya, ini satu -satunya deskripsi yang tersedia untuk@view-transitionDi pangkalan, kan? Nah, di sana<>terakhirWasif, saudara kecil, cenderung iri dengan jumlah bunganavigationMendapatkan:typesKeterangan.

Apa yang dikatakan orang types?

Transformasi dalam menampilkan dokumen silang masih baru dari oven, jadi wajar jika orang tidak menghormati setiap aspek dari aspek mereka, terutama saat mereka menghadirkan a <>banyak Di antara hal -hal baru: basis baru, dua karakteristik baru dan berton -ton elemen palsu dan kelompok palsu. Namun, itu masih mengejutkan saya dengan sedikit penyebutantypes. Beberapa dokumen gagal menamainya di antara orang benar@view-transition Deskripsi. Untungnya, spesifikasi CSS memberikan sedikit klarifikasi tentang topik ini:

itutypesDeskripsi mengatur spesies aktif untuk bergerak saat Anda mengambil atau prosedur.

Lebih akurat,typesIni dapat mengambil menu sisi ruang dengan nama spesies aktif (seperti <custom-ident>), AtaunoneJika tidak ada tipe aktif yang valid untuk halaman itu.

  • Nama: Jenis
  • ke:@view-transition
  • nilai:none | <custom-ident>+
  • Yang pertama: Tidak ada

Jadi nilai -nilai berikut akan bekerja di dalamtypes:

@view-transition {
  navigation: auto;
  types: bounce;
}

/* or a list */

@view-transition {
  navigation: auto;
  types: bounce fade rotate;
}

Ya, tapi tepatnya spesies “aktif”? Kata ini tampaknya “aktif” dengan banyak pengangkatan berat dalam mendefinisikan spesifikasi CSS dan saya ingin mengosongkannya untuk memahami apa artinya lebih baik.

Spesies aktif dalam transfer

Masalahnya:Salib -animasi untuk setiap halaman itu bagus, tetapi hal umum yang harus kita lakukan adalah mengubah transisi tergantung pada halaman yang kita pindahkan. Misalnya, pada konten yang dipoles, kita dapat menggeser konten ke kanan saat bergerak maju dan ke kiri saat bergerak mundur. Dalam aplikasi media sosial, mengklik gambar profil pengguna dapat berlanjut sepanjang periode transisi. Semua ini berarti menentukan banyak transformasi dalam CSS kami, tetapi melakukan ini akan membuat mereka bertentangan satu sama lain secara signifikan. Yang kita butuhkan adalah cara untuk menentukan banyak transformasi, tetapi hanya satu pilihan tergantung pada cara memindahkan pengguna pada halaman.

solusinya:Spesies aktif menentukan transisi mana yang digunakan dan elemen yang harus dimasukkan di dalamnya. Di CSS, digunakan oleh:active-view-transition-type()Kategori palsu yang cocok dengan elemen jika memiliki tipe aktif tertentu. Kembali ke contoh terakhir kami, kami telah mengidentifikasi jenis dokumen aktifbounce. Kita bisa melampirkannya<>MelambungAnimasi di belakang:active-view-transition-type(bounce)Sehingga hanya dipanggil pada halaman itu.

/* This one will be used! */
html:active-view-transition-type(bounce) {
  &::view-transition-old(page) {
    /* Custom Animation */
  }

  &::view-transition-new(page) {
    /* Custom Animation */
  }
}

Ini mencegah transfer tampilan lainnya beroperasi jika tidak cocok dengan jenis aktif apa pun:

/* This one won't be used! */
html:active-view-transition-type(slide) {
  &::view-transition-old(page) {
    /* Custom Animation */
  }

  &::view-transition-new(page) {
    /* Custom Animation */
  }
}

Saya bertanya pada diri sendiri apakah ini mengarah ke pindah saat pergi ke halaman, di luar halaman, atau dalam kedua kasus. Ternyata itu hanya membatasi transisi saat <>Pergi ke halamanOleh karena itu, animasi berkilau terakhir hanya berjalan saat bergerak menuju halaman dengan abounceNilaitypesWasef, tetapi tidak saat Anda meninggalkan halaman itu. Ini memungkinkan transformasi khusus tergantung pada halaman yang akan kita tuju.

Ilustrasi berikutnya berisi dua halaman yang berbagi pola denganbounceDanslideTunjukkan transformasi, keduanya dikelilingi berturut -turut:active-view-transition-type(bounce)Dan:active-view-transition-type(slide)Seperti contoh terakhir. Kami dapat mengontrol halaman yang menggunakan penawaran transisi melaluitypesMenggambarkan.

Gunakan halaman pertamabounceAnimasi:

@view-transition {
  navigation: auto;
  types: bounce;
}

Halaman kedua digunakanslideAnimasi:

@view-transition {
  navigation: auto;
  types: slide;
}

Anda dapat mengunjungi ilustrasi di sini dan menonton simbol lengkap di GitHub.

itu types Deskripsi lebih banyak digunakan dalam javascript

Masalah utama adalah bahwa kita hanya dapat mengontrol transisi sesuai dengan halaman tempat kita bergerak, yang menempatkan batas besar pada jumlah mengalokasikan transformasi kita. Misalnya, contoh tanda baca halaman dan media sosial yang kami lihat hanya dapat digunakan, karena kami perlu tahu dari mana pengguna berasal. Untungnya, menggunakantypesDeskripsi hanyalah satu dari tiga cara yang dapat diisi oleh spesies aktif. Untuk semua spesifikasi, itu bisa:

  1. Dia lulus sebagai bagian dari argumenstartViewTransition(callbackOptions)
  2. Revolusi kapan saja, menggunakan jenis transisi
  3. Mengiklankan transmisi silang -show, menggunakantypesMenggambarkan.

Opsi pertama adalah ketika memulai transisi dari JavaScript, tetapi kami ingin menjalankannya ketika pengguna pindah ke halaman itu sendiri (seperti mengklik tautan). Opsi ketiga adalah menggunakan filetypesMenggambarkan bahwa kami telah meliput. Opsi kedua benar untuk kondisi ini! Mengapa? Ini memungkinkan kami untuk mengatur jenis transisi aktif berdasarkan permintaan, dan kami dapat melakukan perubahan ini sebelum transisi terjadipagereveal Itu terjadi. Ini berarti bahwa kita bisa mendapatkan halaman start dan menyelesaikan pengguna dari JavaScript dan kemudian mengatur jenis aktif yang benar dari kondisi ini.

Saya harus mengakui, saya bukan orang yang paling berpengalaman berbicara tentang opsi ini, jadi segera setelah saya mencoba transformasi yang berbeda dengan tipe aktif, saya akan kembali dengan hasil yang saya capai! Sementara itu, saya mendorong Anda untuk membaca tentang spesies aktif di sini jika Anda gay dan Anda mau <>lagi Dalam memantau transformasi:

  • Menampilkan jenis transisi dalam transisi Bramus (Bramus)
  • Kustomisasi arah transmisi dengan JavaScript (Omar Hansa)

Apa yang ada di tanah yang menggambarkan “spesies” dalam menampilkan transformasi? Awalnya diterbitkan di CSS-Tricks, yang merupakan bagian dari keluarga Digitalocean. Anda harus mendapatkan buletin.

Sumber

-Advertisement-.

IDJ