這篇文章主要講解了“HTML <transition-group>實例分析”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“HTML <transition-group>實例分析”吧!
你所需要的網(wǎng)站建設服務,我們均能行業(yè)靠前的水平為你提供.標準是產(chǎn)品質(zhì)量的保證,主要從事成都網(wǎng)站設計、成都做網(wǎng)站、企業(yè)網(wǎng)站建設、移動網(wǎng)站建設、網(wǎng)頁設計、品牌網(wǎng)站建設、網(wǎng)頁制作、做網(wǎng)站、建網(wǎng)站。創(chuàng)新互聯(lián)建站擁有實力堅強的技術研發(fā)團隊及素養(yǎng)的視覺設計專才。
樣式同前
ul.item {
list-style-type: disc;
margin-block-start: 0;
margin-block-end: 0;
margin-inline-start: 0;
margin-inline-end: 0;
padding-inline-start: 0;
}
.item li {
height: 50px;
line-height: 50px;
border: 1px solid #aaaaaa;
width: 200px;
padding: 0 10px;
display: flex;
align-items: center;
}
先把DOM渲染出來
new Vue({
el: "#drag",
data: {
draggingItem: null,
lastItem: null,
items: Array.from({ length: 5 }, (_item, index) => ({
key: index + 1 + "",
name: "Item" + (index + 1),
})),
},
});
模板是異常的簡單
<transition-group name="flip-list" tag="ul" class="item">
<li draggable="true" :key="item.key" v-for="item of items"
{{item.name}}
</li>
</transition-group>
然后可以在<transition-group>加name了。
<transition-group name="flip-list" tag="ul" class="item">
<!-- 省略 -->
</transition-group>
當然也要加上配套的樣式
.flip-list-move {
transition: transform 0.3s;
}
下面就是給子元素加上事件了
<li draggable="true" :key="item.key" v-for="item of items"
@dragstart="dragstart(item)" @dragover="dragover(item)">
{{item.name}}
</li>
就兩個事件
dragstart: function (item) {
this.draggingItem = item;
},
dragover: function (item) {
if (item !== this.draggingItem && this.lastItem !== item) {
const fromIndex = this.items.indexOf(this.draggingItem);
const toIndex = this.items.indexOf(item);
const temp = this.items[fromIndex];
this.items[fromIndex] = this.items[toIndex];
this.items[toIndex] = temp;
this.items = […this.items];
}
this.lastItem = item;
}
這里我和之前的寫法略作了改動,判斷拖動元素和拖入元素不是同一個,還判斷了拖入元素和上次拖入元素也不是同一個,不然會發(fā)生不停抖動的情況,因為拖動的時候發(fā)生了元素移動,導致反復觸發(fā)dragover事件。
注意最后這里的this.items = […this.items],因為上面是直接在索引上修改數(shù)組元素的,而Vue2的響應式對數(shù)組在索引上的修改察覺不到,所以重新給this.items賦值,不過好在有key的加持,Vue只會針對修改的部分進行更新,無須擔心性能問題。
整個的解決方案把所有HTML、CSS代碼都算入也就不滿80行,讓我切切實實感受到了<transition-group>的威力——大殺器也,如果在Vue應用中有列表型元素的動畫需求,第一考慮的就該是它。
感謝各位的閱讀,以上就是“HTML <transition-group>實例分析”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對HTML <transition-group>實例分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!
網(wǎng)站標題:HTML<transition-group>實例分析
鏈接分享:http://aaarwkj.com/article6/pjsdog.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、標簽優(yōu)化、關鍵詞優(yōu)化、網(wǎng)站導航、App設計、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)