Dapatkah Anda mengubah posisi di css?

Pertama-tama, ketika sebuah elemen diberi atribut relative, absolute, atau fixedpositioning, Anda akan dapat memindahkannya dengan mengubah atribut top, right, left, bottom

Meskipun Anda dapat memindahkannya dan menganimasikan gerakan ini, ini adalah Atribut Pemosisian, tidak dimaksudkan untuk digunakan pada gerakan desain-y. Elemen posisi absolut(top, right, left, absolute0 menempel pada posisi "piksel penuh"

“Jangan bingung memposisikan dengan gerakan desain-y. ”

Jika Anda ingin elemen Anda yang memiliki absolute_1 pindah ke absolute2, browser akan merender animasi piksel demi piksel

absolute3 >absolute4 > absolute5 > absolute6

Animasi dapat dilakukan dengan pemosisian absolut, tetapi Anda akan bingung dengan konsep Pemosisian dan gerakan Desain-y

Jadi cara terbaik untuk mendapatkan efek halus untuk animasi yang sama persis ini adalah dengan mengubah atribut absolute7 elemen. Tidak seperti atribut pemosisian, absolute_7 dapat menginterpolasi pada posisi subpiksel. Jika Anda mendorong elemen Anda (absolute_1) 1 piksel ke bawah saat fixed0, dengan menggunakan absolute7 browser Anda akan membuat animasi jauh lebih halus

fixed2 >fixed3 > fixed4 >fixed5 >fixed6 >fixed7 >fixed8 >fixed9 >top0 dan akhirnya________10______1

Meskipun kode terlihat lebih berat untuk diproses, browser modern cenderung bekerja dengan baik dalam hal absolute7 animasi, menurut Paul Irish, teknisi di tim Chrome

Saya telah melakukan beberapa eksperimen dan menyadari bahwa top3 melakukan interpolasi piksel juga, tetapi di sisi lain, jauh lebih berat untuk dianimasikan jika dibandingkan dengan absolute7

Saya telah membuat dua contoh cepat untuk menunjukkan perbedaan minimal pada kehalusan antara animasi top3 dan absolute7 pada efek paralaks dasar

top_3 paralaks animasi

Parallax menggunakan atribut background-position untuk menganimasikan

absolute_7 paralaks animasi

Parallax menggunakan translate() untuk menganimasikan layer latar belakang

Untuk menyelesaikannya, coba gunakan Atribut Pemosisian hanya untuk tujuan utamanya, untuk memposisikan elemen di layar. Dan untuk gerakan, gunakan atribut absolute_7 untuk menghasilkan animasi yang halus dan proses yang murah

Ini mungkin bukan masalah besar untuk situs web yang tidak terlalu rumit, tetapi jika menyangkut platform yang dapat diskalakan, mendapatkan kinerja CSS yang tepat sangat penting untuk meningkatkan UX dan keandalan sistem.

Properti transition_ adalah properti singkatan yang digunakan untuk mewakili hingga empat properti tulisan tangan terkait transisi

.element {
  transition: background-color 0.5s ease;
}

Sintaksis

transition: [transition-property] [transition-duration] [transition-timing-function] [transition-delay];
_

Demo

transition properti memungkinkan elemen untuk mengubah nilai selama durasi yang ditentukan, menjiwai perubahan properti, daripada membuatnya segera terjadi. Jadi, jika kita memiliki, katakanlah, sebuah kotak dengan latar belakang merah yang ingin kita ubah menjadi latar belakang hijau saat diarahkan, kita dapat menjangkau tepat ke properti transition untuk berpindah di antara warna latar belakang

CodePen Embed Fallback

Menentukan properti mana yang akan ditransisikan

Perhatikan bahwa kami telah memanggil properti background-color dalam deklarasi transition. Itu memberi tahu browser bahwa kami berencana untuk mentransisikan warna latar belakang dan tidak ada yang lain saat transisi terjadi antara keadaan melayang dan tidak melayang. Perhatikan juga, bahwa kami memberi tahu browser bahwa transisi harus memakan waktu dua detik dan ikuti dan ease-out fungsi pengaturan waktu, yang berarti transisi dimulai dengan cepat, lalu melambat menjelang akhir

Anda dapat menentukan properti tertentu seperti yang kami miliki di atas, atau menggunakan nilai

transition: [transition-property] [transition-duration] [transition-timing-function] [transition-delay];
0 untuk merujuk ke properti transisi

.element {
  transition: all 0.5s ease;
  background: red;
  padding: 10px;
}
.element:hover {
  background: green;
  padding: 20px;
}

transition: [transition-property] [transition-duration] [transition-timing-function] [transition-delay];
_0 ditentukan untuk bagian
transition: [transition-property] [transition-duration] [transition-timing-function] [transition-delay];
2 dari steno. Anda juga dapat memisahkan kumpulan nilai dengan koma untuk melakukan transisi yang berbeda pada properti yang berbeda

.element {
  transition: background 0.2s ease,
              padding 0.8s linear;
}
_

Sebagian besar, urutan nilai tidak menjadi masalah — kecuali ada penundaan yang ditentukan. Jika Anda menentukan penundaan, Anda harus menentukan durasi terlebih dahulu. Nilai pertama yang dikenali browser sebagai nilai waktu yang valid akan selalu mewakili durasi. Setiap nilai waktu valid selanjutnya akan diuraikan sebagai penundaan

Beberapa properti tidak dapat ditransisikan karena bukan properti yang dapat dianimasikan. Lihat spesifikasi untuk daftar lengkapnya

Dengan menentukan transisi pada elemen itu sendiri, Anda menentukan transisi terjadi di kedua arah. Yaitu, ketika gaya diubah (mis. g. saat melayang), properti mereka akan bertransisi, dan ketika gaya berubah kembali (mis. g. saat hover off) mereka akan bertransisi. Misalnya, transisi demo berikut saat melayang, tetapi tidak saat melayang

CodePen Embed Fallback

Dukungan peramban

Data dukungan browser ini berasal dari , yang lebih detail. Angka menunjukkan bahwa browser mendukung fitur tersebut pada versi tersebut dan yang lebih baru

Apakah transisi CSS berfungsi dengan posisi?

Biasanya Anda akan menghindari transisi dengan nilai posisi karena menyentak karena menyebabkan halaman digambar ulang . Alih-alih, jauh lebih baik menggunakan transformasi saat Anda menganimasikan karena tidak berdampak pada aliran dan jauh lebih mulus. Gunakan terjemahan sebagai gantinya ketika Anda ingin menggeser sesuatu ke posisinya.

Bagaimana Anda mengatur transisi di CSS?

Tentukan Kurva Kecepatan Transisi . kemudahan - menentukan efek transisi dengan awal yang lambat. ease-out - menentukan efek transisi dengan akhir yang lambat. ease-in-out - menentukan efek transisi dengan awal dan akhir yang lambat. linear - specifies a transition effect with the same speed from start to end. ease-in - specifies a transition effect with a slow start. ease-out - specifies a transition effect with a slow end. ease-in-out - specifies a transition effect with a slow start and end.

Bisakah transisi CSS ditampilkan?

tampilan bukanlah salah satu properti tempat transisi berfungsi . Lihat properti CSS yang dapat dianimasikan untuk daftar properti CSS yang dapat menerapkan transisi padanya.

Bagaimana Anda melakukan transisi antara dua kelas di CSS?

Transisi CSS dalam 4 langkah mudah .
Pastikan apa yang ingin Anda lakukan dapat dilakukan dengan transisi CSS. Anda dapat melakukannya dengan memeriksa dokumen W3C
Tambahkan transisi, dan gaya awal Anda, ke elemen dasar Anda
Tambahkan kelas atau negara bagian yang memiliki gaya yang telah berubah
Tambahkan mekanisme untuk menambahkan kelas (jika ada)