Saya punya beberapa CSS yang di hover, efek transisi CSS akan menggerakkan div.
Masalahnya, seperti yang Anda lihat dalam contoh, adalah bahwa translate
transisi memiliki efek samping yang mengerikan dari membuat gambar dalam div bergerak dengan 1px ke bawah / kanan (dan mungkin mengubah ukuran sedikit sekali?) Sehingga tampak tidak pada tempatnya dan tidak fokus...
Kesalahan tampaknya berlaku sepanjang waktu efek hover diterapkan, dan dari proses coba-coba saya dapat dengan aman mengatakan hanya tampaknya terjadi ketika transisi translate memindahkan div (bayangan kotak dan opacity juga diterapkan tetapi tidak ada bedanya untuk kesalahan saat dihapus).
Masalahnya hanya terjadi ketika halaman memiliki scrollbar. Jadi contoh dengan hanya satu contoh div baik-baik saja, tetapi sekali lagi div identik diidentifikasi dan karena itu halaman memerlukan scrollbar masalah muncul lagi ...
Jawaban:
Pembaruan tahun 2020
image-rendering
properti CSS.<img>
tag menggunakan properti CSS sesuai objek .Jawaban asli
Coba ini di CSS Anda :
Apa yang dilakukan adalah membuat divisi berperilaku "lebih 2D".
backface-visibility
dantransform
tanpa-webkit-
awalan. Saat ini saya tidak tahu bagaimana ini mempengaruhi rendering browser lain (FF, IE), jadi gunakan versi yang tidak diawali dengan hati-hati.sumber
-webkit-transform
, saya tidak bisa melihat perubahan, dan ketika saya membuka konsol pengembang chrome. Saya melihat 2 properti css itu dibelai, seolah-olah mereka ditimpa, tetapi tidak (kosongkan css dan html). Seolah chrome tidak lagi menerimanya.Anda perlu menerapkan transformasi 3d ke elemen, sehingga akan mendapatkan lapisan kompositnya sendiri. Misalnya:
atau
Lebih lanjut tentang kriteria pembuatan lapisan, Anda dapat membaca di sini: rendering yang dipercepat di Chrome
Sebuah penjelasan:
Contoh (arahkan kotak hijau):
Ketika Anda menggunakan transisi apa pun pada elemen Anda itu menyebabkan browser untuk menghitung ulang gaya, kemudian tata ulang konten Anda bahkan jika properti transisi adalah visual (dalam contoh saya itu adalah opacity) dan akhirnya cat elemen:
Masalahnya di sini adalah tata letak ulang konten yang dapat membuat efek elemen "menari" atau "berkedip" pada halaman saat transisi terjadi. Jika Anda akan pergi ke pengaturan, centang kotak "Tampilkan lapisan komposit" dan kemudian menerapkan transformasi 3d ke elemen, Anda akan melihat bahwa itu mendapatkan lapisan itu sendiri yang diuraikan dengan batas oranye.
Setelah elemen mendapatkan lapisannya sendiri, browser hanya perlu lapisan komposit pada transisi tanpa tata letak ulang atau bahkan operasi cat sehingga masalah harus dipecahkan:
sumber
translateZ: 0.000001
(beberapa # sangat kecil) dan voila! Tajam gambar latar belakang sekali lagi!Punya masalah yang sama dengan iframe youtube embeded (Terjemahan digunakan untuk memusatkan elemen iframe). Tak satu pun dari solusi di atas bekerja sampai mencoba mengatur ulang filter css dan keajaiban terjadi.
Struktur:
Gaya [sebelum]
Gaya [setelah]
sumber
filter: blur(0)
melakukannya untukku!-webkit-
awalan datang sebelumnya? Info Lebih LanjutSaya merekomendasikan CSS atribut baru eksperimental yang saya uji pada browser terbaru dan bagus:
Dengan ini browser akan mengetahui algoritma untuk rendering
sumber
image-rendering: -webkit-optimize-contrast;
menyelesaikan masalah di Chrome. Namun, gambar di browser lain, misalnya Firefox, mendapatkan rendering lebih, jauh lebih buruk dengan set opsi rendering. Karena itu, saya hanya menggunakan arahan WebKit, yang juga berfungsi pada mesin Blink. Terima kasih!Baru saja menemukan alasan lain mengapa suatu elemen menjadi buram ketika diubah. Saya menggunakan
transform: translate3d(-5.5px, -18px, 0);
untuk memposisikan ulang elemen setelah elemen dimuat, namun elemen itu menjadi buram.Saya mencoba semua saran di atas tetapi ternyata itu karena saya menggunakan nilai desimal untuk salah satu nilai terjemahan. Seluruh angka tidak menyebabkan keburaman, dan semakin jauh saya pergi dari seluruh nomor semakin buruk menjadi kabur.
yaitu
5.5px
mengaburkan elemen paling banyak, paling5.1px
sedikit.Hanya berpikir saya akan membuang ini di sini kalau-kalau itu membantu siapa pun.
sumber
Saya menipu masalah menggunakan transisi dengan langkah-langkah, tidak lancar
Ini bukan penyelesaian, itu curang dan tidak bisa diterapkan di mana-mana.
Saya tidak bisa menjelaskannya, tetapi itu berhasil untuk saya. Tidak ada jawaban lain yang membantu saya (OSX, Chrome 63, tampilan Non-Retina).
https://jsfiddle.net/tuzae6a9/6/
sumber
Menskala untuk menggandakan dan menurunkan hingga setengah dengan
zoom
berhasil bagi saya.sumber
Saya sudah mencoba sekitar 10 kemungkinan solusi. Menggabungkan mereka dan mereka masih tidak berfungsi dengan benar. Selalu ada shake 1px di akhir.
Saya menemukan solusi dengan mengurangi waktu transisi pada filter.
Ini tidak berhasil:
Larutan:
Coba ini di biola:
Saya harap ini membantu seseorang.
sumber
Mencoba
filter: blur(0);
Ini berhasil untuk saya
sumber
Bagi saya, sekarang pada tahun 2018. Satu-satunya hal yang memperbaiki masalah saya (garis glicky-flicker putih yang berjalan melalui gambar di hover) menerapkan ini ke elemen tautan saya yang memegang elemen gambar yang memiliki
transform: scale(1.05)
sumber
Saya terbantu dengan mengatur nilai durasi
.3s
transisi sama dengan langkah waktu transisi.3s
sumber
Baru saja mendapat masalah yang sama. Cobalah untuk mengatur posisi: relatif terhadap elemen induk, yang bekerja untuk saya.
sumber