国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Vue中的transition封裝組件的實現方法

2019-11-19 11:02:56
字體:
來源:轉載
供稿:網友

vue版本信息:2.5.2

問題起源于使用Vue做網站時涉及到的一個小部件顯示動畫,閱讀了Vue的文檔后結合網上各位的經驗,花了點時間研究了下。

最終的效果如上圖所示,當鼠標移入灰色方塊時彈出層會至上而下顯示出來,類似于 拉鏈式窗簾(?)。

實例

實現上圖所示的效果代碼如下:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>transition</title> <script src="https://cdn.bootcss.com/vue/2.5.2/vue.min.js"></script></head><body> <div id="app">   <div    @mouseenter="show"    @mouseleave="hide">     <div class="enter-div">      {{content}}     </div>     <transition name="fade">      <div class="showContainer" v-show="flag">       彈出層      </div>     </transition>   </div> </div> <script>  var app = new Vue({   el: "#app",   data: {    flag: false,    content: "鼠標移入"   },   methods: {    show: function () {     this.flag = true;     this.content = "鼠標移出";    },    hide: function () {     this.flag = false;     this.content = "鼠標移入";    }   }  }) </script> <style>  body, html {   height: 100%;   margin: 0;  }  #app {   width: 100%;   height: 100%;   display: flex;   justify-content: center;   align-items: center;  }  .enter-div {   width: 200px;   height: 50px;   /* margin-top: 200px; */   background-color:darkgrey;   text-align: center;   line-height: 50px;  }  .showContainer {   position: absolute;   right: 620px;   top: 250px;   width: 200px;   /* height: 96px; */   line-height: 96px;   text-align: center;   color: black;   box-shadow: 0 0 5px -1px #ccc;   z-index: 10;   overflow: hidden;  }  /* 進入和離開時過渡狀態的 動畫狀態 */  .fade-enter-active, .fade-leave-active {   transition: all .10s ease;   height: 96px;  }  /* 進入時的 初始狀態 和 離開時動畫的 結束狀態 */  .fade-enter, .fade-leave-to {   height: 0;  }  /* 離開時的 初始狀態 和 進入時動畫的 結束狀態 */  .fade-enter-to, .fade-leave {   height: 96px;  } </style></body></html>

transition的使用

以上為各類狀態/過程對應的類名示意圖。

1.沒有名字的transition組件

<transition>  <div>  ......  </div></transition><style>  .v-enter, .v-leave-to {  ......  }    .v-leave, .v-enter-to {  ......  }    ......</style>

2.有名字的transition組件

如下代碼,該transition組件的name屬性為fade,那么應設置的動畫類名為fade-enter,其他的類名也是如此。
<transition name="fade">  <div>  ......  </div></transition><style>  .fade-enter, .fade-leave-to {  ......  }    .fade-leave, .fade-enter-to {  ......  }    ......</style>

3.自定義過渡類名

<transition  name="show"  enter-class="show-enter"  enter-active-class="animation fly"  leave-active-class="xxx"  ......>  <div>  ......  </div></transition><style>  .show-enter {  ......  }    .animation {  ......  }    .fly {  ......  }    ......</style>

4.自定義鉤子函數

<transition  v-on:enter="enter"  v-on:after-enter="after"  v-on:leave="leave"   ......>  <div>  ......  </div></transition>
methods: {  enter: function (el) {    ......  },  after: function (el) {    ......  },  ......}

官方文檔中的用法不止這幾種,這里只例舉了幾種簡單常用的。源碼在此

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 惠水县| 哈巴河县| 宝清县| 惠来县| 黄浦区| 潢川县| 平潭县| 青冈县| 建湖县| 运城市| 汉沽区| 金寨县| 土默特右旗| 荆门市| 庆城县| 马鞍山市| 康乐县| 正安县| 迁安市| 玉屏| 永吉县| 贺兰县| 景泰县| 新蔡县| 全椒县| 临武县| 铜鼓县| 昆明市| 尚义县| 齐河县| 彩票| 正镶白旗| 宿松县| 苍南县| 宁津县| 清河县| 库车县| 日喀则市| 旬邑县| 赤水市| 富宁县|