vue實作交錯過渡的方法:1、開啟對應的vue檔;2、使用ransition-group元件對包裹的清單中每一個元素批次進行transtion元件的動作;3、給每個清單項加上不同縮時即可。
本教學操作環境:Windows10系統、Vue 3版、Dell G3電腦。
vue的交錯過渡怎麼實現?
Vue 的清單交錯過渡
基於vue的,需要你對vue 的vue的交錯過渡怎麼實現
vue的交錯過渡怎麼實現-group
#有過使用和了解。vue的交錯過渡怎麼實現
transtion
元件已經有了很詳細的
這裡說一下我的理解:transtion
是vue提供的一個抽像元件,會在 適當的時機 幫我們操作其包裹的子元素。
afterEnter dom 動畫完成之後的下一幀(對應下圖的動畫結束)
接下來為 每個清單項目 加上不同 延遲 即可。
vue的交錯過渡怎麼實現-delay
css.list-enter-active:nth-child(5n+2) { vue的交錯過渡怎麼實現-delay: .3s; }.list-enter-active:nth-child(5n+3) { vue的交錯過渡怎麼實現-delay: .5s; }.list-enter-active:nth-child(5n+4) { vue的交錯過渡怎麼實現-delay: .7s; }.list-enter-active:nth-child(5n+5) { vue的交錯過渡怎麼實現-delay: .9s; }复制代码
#用vue的交錯過渡怎麼實現-delay 配合css選擇器,確實可以實作交錯過渡,
vue的交錯過渡怎麼實現
html<div> <!-- 这里加上 v-bind:css="false" 让vue跳过对css的检测,让我们更好控制 动画完成的时机 --> <vue> <item></item> </vue>的交錯過渡怎麼實現-group></div>复制代码
當只用 JavaScript 過渡的時候,在 enter 和 leave 中必須使用 done 進行回呼。否則,它們將被同步調用,過渡會立即完成。
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">new Vue({ el: "#app", data: () => ({ num: 0
}), methods: { //让我们在 beforeEnter enter afterEnter 钩子里,把 vue 帮我们做的事,自己做一遍:
//添加移除 class 类名,监听 vue的交錯過渡怎麼實現end 事件。
beforeEnter(dom) {
dom.classList.add('list-enter', 'list-enter-active');
}, enter(dom,done) { let delay = dom.dataset.delay; vue的交錯過渡怎麼實現(function () {
dom.classList.remove('list-enter');
dom.classList.add('list-enter-to'); //监听 vue的交錯過渡怎麼實現end 事件
var vue的交錯過渡怎麼實現end = window.onvue的交錯過渡怎麼實現end ? "vue的交錯過渡怎麼實現end" : "webkitTransitionEnd";
dom.addEventListener(vue的交錯過渡怎麼實現end, function onEnd() {
dom.removeEventListener(vue的交錯過渡怎麼實現end, onEnd); done(); //调用done() 告诉vue动画已完成,以触发 afterEnter 钩子
});
}, delay)
}, afterEnter(dom) {
dom.classList.remove('list-enter-to', 'list-enter-active');
}
}
})复制代码</pre><div class="contentsignin">登入後複製</div></div>
目前來說,運作良好,實現了交錯過渡的效果,也不用寫大量的 css。
.list-enter .list-enter-to
和vue的交錯過渡怎麼實現
#告訴瀏覽器,在不同的時間把列表項,從opacity 0 translateY(100%
) 過渡到,除了完全不用寫css類別名稱之外,
vue的交錯過渡怎麼實現html <item></item>
getRandom() { var rate = Math.floor(Math.random() * 90 + 10); return Math.random() > 0.5 ? rate : -1 * rate; }
以上是vue的交錯過渡怎麼實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!