如何使用動畫交換兩個Div
P粉191323236
2023-08-26 13:55:33
<p>我有一個項目,我希望一個div出現為一個大盒子,另外三個div出現在下面作為小盒子,當你點擊一個小盒子時,它會使用css過渡效果改變大小並與大盒子交換位置,以使移動和大小變化平滑。目前,我正在嘗試使用jQuery,但定位根本無效。這是我目前的範例:</p>
<p>https://jsfiddle.net/v3pmhawj/1/</p>
<pre class="brush:php;toolbar:false;">$(function () {
let { left: x1, top: y1 } = $('.full-size-card').offset()
$('.inactive-sheets .card').on('click', function() {
let { left: x2, top: y2 } = $(this).offset()
let curr = $('.full-size-card')
let diffX = x2 - x1
let diffY = y2 - y1
$(this).css({
left: -diffX,
top: -diffY
})
$(this).addClass('full-size-card')
curr.css({
left: diffX,
top: diffY
})
curr.removeClass('full-size-card')
})
})</pre>
<p>如果有人有涉及其他庫或其他技術的建議,我願意傾聽。我希望能夠在DOM中移動divs,但據我所知,如果這樣做,你無法對它們進行css過渡效果,因為(我所知道的)唯一的方法是在DOM中刪除並重新添加一個元素的副本。 </p>
您只需使用過渡效果即可建立動畫效果。為了實現這一點,您需要定義容器的寬度和高度,以及底部元素的頂部和左側位置。
在點擊時,您只需交換將變小的元素的類別和將變大的元素的類別。
這是一個範例的fiddle連結: https://jsfiddle.net/fkd3ybwx/210/
#HTML
CSS
JavaScript