1. 程式人生 > >vue2.0 transition元件實現過渡效果

vue2.0 transition元件實現過渡效果

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="js/vue.js" ></script>
<style>
*{margin: 0;padding: 0;}
.app{
width: 220px;
height: 310px;
background: #F0F0F0;
margin: 0 auto;
margin-top: 100px;
overflow: hidden;
}
.btn{
display: block;
width: 80px;
height: 30px;
background: #20B060;
color: #FFF;
text-align: center;
line-height: 30px;
outline: none;
border: none;
border-radius: 3px;
margin: 10px 0 0 10px;
}
.container{
width: 200px;
height: 200px;
background: #E0E0E0;
margin: 0 auto;
margin-top: 20px;
overflow: hidden;
}
.box{
    width:100%;
    height:100%;
    text-align: center;
    line-height: 200px;
    background: #ff8282;
    color: #Fff;
    /*以下兩個預設值,可不寫*/
    /*寫上只是為了便於講解,記住這兩個*/
    opacity: 1;
    margin-left: 0;
}

 .box-enter-active,.box-leave-active{
    transition: all .8s;
 }
 .box-enter{
    opacity: 0;
    margin-top: 100%;
 }
 .box-leave-active{
    opacity: 0;
    margin-top: 100%;
 } 
</style>
</head>
<body>
<div id="app" class="app">
<button @click='showBox=!showBox' class="btn">切換</button>
 
<div class="container">
<transition name="box">
    <div v-show="showBox" class="box">
        i am the box
    </div>
</transition>


</div>
</div>
 
<script>
new Vue({
el:'#app',
data:{
showBox:false
},
})
</script>


<h2>過渡原理分析</h2>

&nbsp; Vue提供的元件叫transition, <transition name="box"></transition>
<br /><br />
&nbsp; Vue提供的 <transition/> 元件,會在下列四種情況下起作用:
<br />
&nbsp;&nbsp;&nbsp;   ⑴. 條件渲染(使用v-if)
<br />
&nbsp;&nbsp;&nbsp;⑵. 條件展示(使用了v-show)
<br />
&nbsp;&nbsp;&nbsp;⑶. 動態元件
<br />
&nbsp;&nbsp;&nbsp;⑷. 元件根節點
<br />
在上述的任意一種情況發生的時候(比如:v-show的值為true切換成false的時候),我們可以給 <transition/> 元件包含的節點元素新增entering/leaving過渡動畫效果
<br /><br />
當一個被 <transition/> 元件包含的節點出現了以上的4種情況的任意一種的時候,
Vue自動嗅探目標元素是否應用了 CSS 過渡或動畫,
<br />
如果是,在恰當的時機新增/刪除 CSS 類名。
<br />
所謂的:“在恰當的時機新增/刪除 CSS 類名”,其實是:
<br />
1.v-enter:進入過渡效果(enter)剛剛開始那一刻。在元素被插入或者show的時候生效,在下一個幀就會立刻移除,一瞬間的事。
<br />
2.v-enter-active: 表示進入過渡(entering)的結束狀態。在元素被插入時生效,在 transition/animation 完成之後移除。
<br />
3.v-leave: 離開過渡(leave)的開始那一刻。在離開過渡被觸發時生效,在下一個幀移除,也是一瞬間的事。
<br />
4.v-leave-active:離開過渡(leaving)的結束狀態。在離開過渡被觸發時生效,在 transition/animation 完成之後移除。
</body>
</html>

相關推薦

vue2.0 transition元件實現過渡效果

<!DOCTYPE html> <html><head><meta charset="UTF-8"><title></title><script type="text/javascript" sr

CSS3使用transition屬性實現過渡效果

毫秒 kit ace syn bic mar spa ima 應用 transition屬性目的是讓css的一些屬性(如background)的以平滑過渡的效果出現。它是一個合並屬性,是由以下四個屬性組合而成: transition-property:設置應用過渡的C

【vue.js】用vue.js的transition元件結合css3的transitions屬性輕鬆實現過渡效果的小小小demo

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title>

vue2.0 transition 多個元素巢狀使用過渡

在做vue的demo的時候遇到一個問題,多個巢狀的元素如何設定transition? 我的程式碼: <div id='demo'> <button @click="show = !show">按鈕</butt

vue2.0結合Element實現select動態控制input禁用

嘻嘻 [0 attr 折騰 解決 model utf del logs 今天有一個盆友問小穎,怎麽實現用select動態控制input禁用,也就是說,input默認是可編輯的,但是每當我選一次select,input就會變成禁用,雖然小穎不知道她為什麽這樣做,因為小

vue2.0 transition

有效 uid 指定 不同的 col eba 徹底 wip keyframes vue2.0 transition -- demo實踐填坑 前言 vue1.0版本和2.0版本的過渡系統改變還是蠻徹底的,具體請自行詳看文檔介紹:https://vuefe.cn/v2/g

vue2.0+vue-dplayer實現hls播放

thum clas ted validator con method context log ret vue2.0+vue-dplayer實現hls播放 開始 安裝依賴 npm install vue-dplayer -S 1,編寫組件HelloWorld.vue &

【重點突破】—— Vue2.0 transition 動畫Demo實踐填坑

前言:vue1.0版本和2.0版本的過渡系統改變是很大的,具體請詳看文件介紹。本文轉載自郭錦榮的部落格,一共列舉了四種transition的使用實踐,分別是css過渡、css動畫、javascript鉤子、列表過渡的應用,這裡只作為學習梳理。   css過渡--實踐

vue2.0下axios實現跨域踩的坑

按踩坑順序敘述。本人對http瞭解太少,所以坑踩得較多。 1.開始進行跨域時,知道vue2.0官方推薦axios進行ajax請求,大致看一下https://www.npmjs.com/package/axios axios的用法,感覺挺好理解嘛,封裝的挺好,用時發現,不對啊。跨域設定在哪?最後找到

Vue2.0元件向子元件傳值,動態修改資料問題[props導致的問題]

在Vue2.0中,專案開發時遇到的問題。 在子元件定義 <script> export default { props:['displaySelf'] } </script>

VUE2.0元件傳值給子元件初始化用

    父元件中呼叫子元件autoSelect(我的專案裡autoSelect是一個公共元件)<autoSelect  v-bind:name="propName" @getAutoSelectResult="listenAutoSelectResult"><

【Vue】 vue2.0父子元件傳遞函式

學習筆記:在vue2.0中,父元件呼叫子元件時,想要將父元件中的函式體也做傳遞 1. 通過props :需要從子元件傳引數到父元件時適用 // 父元件.vue <template>

Vue2.0中子元件向父元件傳遞資料的方法,以完整demo演示

子元件child.vue原始碼:<template> <div class="child"> <button @click="sendData">點擊向父元件傳資料</button> </div> &

【譯】CSS遮罩實現過渡效果

原文地址:codrops 原文作者:Robin Delaporte 線上預覽 下載原始碼 今天我們想向您展示如何使用CSS Masks建立一個有趣的過渡效果。 與剪下類似,遮罩是定義可見性和與元素複合的另一種方式。 在下面的教程中,我們將向您展示如何在簡單輪播圖中為過渡效果

Vue2.0使用Axios實現跨域訪問

Vue2.0使用Axios實現跨域訪問 配置BaseUrl 在main.js中,配置下我們訪問的Url字首: axios.defaults.baseURL = '/api' // 開發本地代理 axios.defaults.headers.post['Contenst-

vue2.0父子元件以及非父子元件如何通訊

1.父元件傳遞資料給子元件 父元件資料如何傳遞給子元件呢?可以通過props屬性來實現 父元件: <parent> <child :child-msg="msg"></child>//這裡必須要用 - 代替駝峰 </pa

vue2.0元件呼叫父元件的資料

例項:child.vue檔案,呼叫parent.vue的資料 parent.vue如下: <template> <div> <div c

vue2.0元件和父元件之間的傳值(轉載)

Vue是一個輕量級的漸進式框架,對於它的一些特性和優點在此就不做贅述,本篇文章主要來探討一下Vue子父元件通訊的問題 首先我們先搭好開發環境,我們首先得裝好git和npm這兩個工具(如果有不清楚的同學請自行百度哦) 環境搭建步驟: 開啟git ,執行 npm install --global vue-cl

vue2.0父子元件以及非父子元件通訊傳參詳解

1.父元件傳遞資料給子元件 父元件資料如何傳遞給子元件呢?可以通過props屬性來實現 父元件: <parent> <child :child-msg="msg"></child>//這裡必須要用 - 代替駝峰 </p

vue2.0動態元件及render

<template> <div class="hello"> <h1>{{ msg }}</h1> <h2>這裡是Boor</h2> <component v-bin