(顯示的過程:在動畫即將被執行的瞬間,會往div上增長兩個class名:fade-enter、fade-enter-active。而後去掉fade-enter,增長fade-enter-to。接着動畫繼續執行,到結束的瞬間,會把最後兩個class去掉。)
javascript
(隱藏的過程)
css
爲啥style標籤裏的class以fade開頭呢?由於我在transition取名就是fade。若是不取名,默認是v(例如:v-enter、v-enter-active):
html
<!DOCTYPE html> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script src="./vue.js"></script> <!-- <script src="http://cdn.staticfile.org/vue/2.6.10/vue.common.dev.js"></script> --> <style type="text/css"> .fade-enter { opacity: 0 } .fade-enter-active { transition: opacity 3s; } .fade-leave-to { opacity: 0 } .fade-leave-active { transition: opacity 3s; } </style> </head> <body> <div id="root"> //name隨便取名: <transition name="fade"> <div v-if="show">hello</div> </transition> <button @click="handleClick">切換</button> </div> <script type="text/javascript"> var vm = new Vue({ el: "#root", data: { show: true }, methods: { handleClick: function() { this.show = !this.show } } }); </script> </body> </html>