So tauschen Sie zwei Div mithilfe einer Animation aus
P粉191323236
2023-08-26 13:55:33
<p>Ich habe ein Projekt, bei dem ich möchte, dass ein Div als großes Feld und drei weitere Divs darunter als kleine Kästchen angezeigt werden. Wenn Sie auf ein kleines Kästchen klicken, ändert sich die Größe mithilfe eines CSS-Übergangseffekts und es wird daran ausgerichtet Die große Box Tauschen Sie die Positionen aus, um Bewegungen und Größenänderungen reibungsloser zu gestalten. Momentan versuche ich, jQuery zu verwenden, aber die Positionierung funktioniert überhaupt nicht. Hier ist mein aktuelles Beispiel: </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')
sei diffX = x2 - x1
sei diffY = y2 - y1
$(this).css({
links: -diffX,
oben: -diffY
})
$(this).addClass('full-size-card')
curr.css({
links: diffX,
oben: diffY
})
curr.removeClass('full-size-card')
})
})</pre>
<p>Wenn jemand Vorschläge zu anderen Bibliotheken oder anderen Technologien hat, bin ich bereit, zuzuhören. Ich möchte in der Lage sein, die Divs im DOM zu verschieben, aber soweit ich weiß, können Sie in diesem Fall keinen CSS-Übergangseffekt auf sie anwenden, da die einzige Möglichkeit (die ich kenne) darin besteht, sie zu entfernen und erneut auszuführen -Fügen Sie eine Kopie des Elements im DOM hinzu. </p>
您只需使用过渡效果就可以创建动画效果。为了实现这一点,您需要定义容器的宽度和高度,以及底部元素的顶部和左侧位置。
在点击时,您只需交换将变小的元素的类和将变大的元素的类。
这是一个示例的fiddle链接: https://jsfiddle.net/fkd3ybwx/210/
HTML
CSS
JavaScript