国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

如何使用動(dòng)畫(huà)交換兩個(gè)Div
P粉191323236
P粉191323236 2023-08-26 13:55:33
0
1
666
<p>我有一個(gè)項(xiàng)目,我希望一個(gè)div出現(xiàn)為一個(gè)大盒子,另外三個(gè)div出現(xiàn)在下面作為小盒子,當(dāng)你點(diǎn)擊一個(gè)小盒子時(shí),它會(huì)使用css過(guò)渡效果改變大小并與大盒子交換位置,以使移動(dòng)和大小變化平滑。目前,我正在嘗試使用jQuery,但定位根本無(wú)效。這是我目前的示例:</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>如果有人有涉及其他庫(kù)或其他技術(shù)的建議,我愿意傾聽(tīng)。我希望能夠在DOM中移動(dòng)divs,但據(jù)我所知,如果這樣做,你無(wú)法對(duì)它們進(jìn)行css過(guò)渡效果,因?yàn)椋ㄎ宜赖模┪ㄒ坏姆椒ㄊ窃贒OM中刪除并重新添加一個(gè)元素的副本。</p>
P粉191323236
P粉191323236

全部回復(fù)(1)
P粉571233520

您只需使用過(guò)渡效果就可以創(chuàng)建動(dòng)畫(huà)效果。為了實(shí)現(xiàn)這一點(diǎn),您需要定義容器的寬度和高度,以及底部元素的頂部和左側(cè)位置。

在點(diǎn)擊時(shí),您只需交換將變小的元素的類和將變大的元素的類。

這是一個(gè)示例的fiddle鏈接: https://jsfiddle.net/fkd3ybwx/210/

HTML

<div class="card-container">
  <div class="card large">A</div>
  <div class="card small">B</div>
  <div class="card small">C</div>
  <div class="card small">D</div>
</div>

CSS

.card-container {
  position: relative;
}

.card {
  transition: all ease 1s;
  position: absolute;
  font-size: 24px;
  border: white 4px solid;
  box-sizing: border-box;
  cursor: pointer;
}

.small {
  width: 100px;
  height: 100px;
  background: blue;
  left: 0;
  top: 300px;
}

.small ~ .small {
  left: 100px;
  background: green;
}

.small ~ .small ~ .small {
  left: 200px;
  background: yellow;
}

.large {
  width: 300px;
  height: 300px;
  background: red;
  left: 0px;
  top: 0px;
}

JavaScript

const smallCards = document.querySelectorAll('.card');

smallCards.forEach((smallCard) => {
    smallCard.addEventListener('click', (event) => {
    const largeCard = document.querySelector('.large');
    
    largeCard.className = "card small";
    event.target.className = "card large";
  });
});
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板