Saya mencoba membuat efek "fade-in fade-out" menggunakan transisi CSS. Tapi saya tidak bisa mendapatkan ini untuk bekerja dengan gambar latar belakang ...
CSS:
.title a {
display: block;
width: 340px;
height: 338px;
color: black;
background: transparent;
/* TRANSITION */
-webkit-transition: background 1s;
-moz-transition: background 1s;
-o-transition: background 1s;
transition: background 1s;
}
.title a:hover {
background: transparent;
background: url(https://lh3.googleusercontent.com/-p1nr1fkWKUo/T0zUp5CLO3I/AAAAAAAAAWg/jDiQ0cUBuKA/s800/red-pattern.png) repeat;
/* TRANSITION */
-webkit-transition: background 1s;
-moz-transition: background 1s;
-o-transition: background 1s;
transition: background 1s;
}
Lihat: http://jsfiddle.net/AK3La/
css
background
background-image
css-transitions
Nick Zani
sumber
sumber
background-image
bukanlah properti yang dapat dianimasikan ( w3.org/TR/css3-transitions/#animatable-properties ), jadi solusi Anda tidak sesuai dengan standar.background
, dan inilah yang harus digunakan (ini berfungsi di Chrome untuk saya). Mungkin spesifikasi (atau impl) telah berubah sejak pertanyaan itu dipostingSolusinya (yang saya temukan sendiri) adalah trik ninja, saya bisa menawarkan dua cara:
pertama, Anda perlu membuat "container" untuk
<img>
itu, yang akan berisi status normal dan hover pada saat yang sama:dengan pemilih CSS3 http://jsfiddle.net/eD2zL/1/ (jika Anda menggunakan yang ini, status "normal" akan menjadi anak pertama penampung Anda, atau mengubah
nth-child()
urutannya)Solusi CSS2 http://jsfiddle.net/eD2zL/2/ (perbedaan antara hanya beberapa pemilih)
Pada dasarnya, Anda perlu menyembunyikan status "normal" dan menunjukkan "hover" mereka saat Anda mengarahkannya
dan hanya itu, saya harap seseorang merasakan manfaatnya.
sumber
Saya telah menemukan solusi yang berhasil untuk saya ...
Jika Anda memiliki item daftar (atau div) yang hanya berisi tautan, dan katakanlah ini untuk tautan sosial di halaman Anda ke facebook, twitter, dll. dan Anda menggunakan gambar sprite, Anda dapat melakukan ini:
Jadikan latar belakang "li" sebagai gambar tombol Anda
Kemudian jadikan gambar latar belakang tautan sebagai status hover tombol. Tambahkan juga atribut opacity ke ini dan setel ke 0.
Sekarang yang Anda butuhkan hanyalah "opacity" di bawah "a: hover" dan setel ini ke 1.
Tambahkan atribut transisi opasitas untuk setiap browser ke "a" dan "a: hover" sehingga css terakhir akan terlihat seperti ini:
Jika saya menjelaskannya dengan benar yang seharusnya membiarkan Anda memiliki tombol gambar latar belakang yang memudar, semoga ini membantu setidaknya!
sumber
Sayangnya Anda tidak dapat menggunakan transisi aktif
background-image
, lihat daftar w3c properti yang dapat dianimasikan .Anda mungkin ingin melakukan beberapa trik
background-position
.sumber
Anda dapat menggunakan elemen pseudo untuk mendapatkan efek yang Anda inginkan seperti yang saya lakukan di Fiddle itu .
CSS:
HTML:
sumber
:after
elemen, coba setelwidth
danheight
sebagai100%
gantinyainherit
, 2) jikabackground-image
benar-benar ditampilkan di latar depan , gunakan indeks negatif untuk:after
elemen:z-index: -1;
Jika Anda dapat menggunakan jQuery, Anda dapat mencoba plugin BgSwitcher untuk mengganti gambar latar belakang dengan efek, ini sangat mudah digunakan.
Sebagai contoh :
Dan tambahkan efek Anda sendiri, lihat menambahkan jenis efek
sumber
Coba ini, akan membuat animasi latar belakang berfungsi di web tetapi aplikasi seluler hybrid tidak berfungsi
sumber
Mempertimbangkan gambar latar belakang tidak dapat dianimasikan, saya membuat sedikit campuran SCSS yang memungkinkan untuk transisi antara 2 gambar latar belakang yang berbeda menggunakan pemilih semu sebelum dan sesudah . Mereka berada di lapisan indeks-z yang berbeda. Yang di depan dimulai dengan opacity 0 dan menjadi terlihat dengan hover.
Anda dapat menggunakannya dengan pendekatan yang sama untuk membuat animasi dengan gradien linier juga.
scss
Sekarang Anda bisa menggunakannya dengan
Anda dapat memeriksanya di sini: https://jsfiddle.net/pablosgpacheco/01rmg0qL/
sumber
Jika menganimasikan
opacity
bukanlah pilihan, Anda juga dapat menganimasikanbackground-size
.Misalnya, saya menggunakan CSS ini untuk menyetel
backgound-image
dengan penundaan.sumber
.after
menjadi.before
untuk gambar latar belakang, Anda harus mengatur gambar latar belakang ke dalam.before
. Jika tidak, itu akan hilang begitu saja tanpa animasi.Salam, jawaban ini hanya berfungsi di Chrome, karena IE dan FF mendukung transisi warna.
Tidak perlu membuat elemen HTML Anda
opacity:0
, karena beberapa kali mengandung teks, dan tidak perlu menggandakan elemen Anda !.Pertanyaan dengan link ke contoh di jsfiddle membutuhkan perubahan kecil, yaitu untuk menempatkan gambar kosong di
.title a
sepertibackground:url(link to an empty image);
sama seperti Anda memasukkannya ke dalam.title a:hover
tetapi membuatnya gambar kosong, dan kode akan bekerja.Lihat ini https://jsfiddle.net/Tobasi/vv8q9hum/
sumber
Dengan postingan inspiratif Chris di sini:
https://css-tricks.com/different-transitions-for-hover-on-hover-off/
Saya berhasil menemukan ini:
sumber
Ini dapat dicapai dengan dukungan lintas-browser yang lebih besar daripada jawaban yang diterima dengan menggunakan elemen-semu seperti yang dicontohkan oleh jawaban ini: https://stackoverflow.com/a/19818268/2602816
sumber
Saya sedikit kesulitan dengan ini, pertama-tama saya menggunakan tumpukan gambar di atas satu sama lain dan setiap tiga detik, saya mencoba untuk menganimasikan ke gambar berikutnya dalam tumpukan dan melemparkan gambar saat ini ke bagian bawah tumpukan. Pada saat yang sama saya menggunakan animasi seperti yang ditunjukkan di atas. Saya tidak bisa membuatnya bekerja untuk hidup saya.
Anda dapat menggunakan library ini yang memungkinkan ** gambar latar belakang yang diubah ukurannya secara dinamis dan dapat menampilkan slideshow ** menggunakan jquery-backstretch.
https://github.com/jquery-backstretch/jquery-backstretch
sumber