Bagaimana untuk menukar dua Div menggunakan animasi
P粉191323236
2023-08-26 13:55:33
<p>Saya mempunyai projek di mana saya mahu satu div muncul sebagai kotak besar dan tiga div lain muncul di bawah sebagai kotak kecil dan apabila anda mengklik pada kotak kecil ia akan menukar saiz menggunakan kesan peralihan css dan sejajar dengan kotak besar Tukar kedudukan untuk melancarkan pergerakan dan perubahan saiz. Pada masa ini saya cuba menggunakan jQuery tetapi kedudukannya tidak berfungsi sama sekali. Berikut ialah contoh semasa saya: </p>
<p>https://jsfiddle.net/v3pmhawj/1/</p>
<pre class="brush:php;toolbar:false;">$(function () {
biarkan { kiri: x1, atas: y1 } = $('.kad bersaiz penuh').offset()
$('.inactive-sheets .card').on('click', function() {
biarkan { kiri: x2, atas: y2 } = $(this).offset()
biarkan curr = $('.kad bersaiz penuh')
biarkan diffX = x2 - x1
biarkan diffY = y2 - y1
$(this).css({
kiri: -diffX,
atas: -diffY
})
$(this).addClass('kad bersaiz penuh')
curr.css({
kiri: diffX,
atas: diffY
})
curr.removeClass('kad bersaiz penuh')
})
})</pre>
<p>Jika sesiapa mempunyai cadangan yang melibatkan perpustakaan lain atau teknologi lain, saya sedia mendengar. Saya mahu dapat mengalihkan div di dalam DOM, tetapi setakat yang saya tahu jika anda melakukannya, anda tidak boleh melakukan kesan peralihan css pada mereka kerana satu-satunya cara (yang saya tahu) adalah untuk mengalih keluar dan semula -tambah salinan elemen dalam DOM. </p>
Anda boleh mencipta kesan animasi hanya dengan menggunakan kesan peralihan. Untuk mencapai ini, anda perlu menentukan lebar dan ketinggian bekas, serta kedudukan atas dan kiri elemen bawah.
Apabila klik, anda hanya menukar kelas elemen yang akan menjadi lebih kecil dan kelas elemen yang akan menjadi lebih besar.
Berikut ialah pautan biola dengan contoh: https://jsfiddle.net/fkd3ybwx/210/
HTML
CSS
JavaScript