欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

VUE組件中的 Drawer 抽屜實現代碼

 更新時間:2019年08月06日 08:37:53   作者:similar  
這篇文章主要介紹了VUE組件 之 Drawer 抽屜 ,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

因為項目中用的是 element-ui 框架,而這個框架并沒有抽屜組件,所以自己實現一個,具體代碼如下:

drawer.vue

<template>
 <div class="drawer">
  <div :class="maskClass" @click="closeByMask"></div>
  <div :class="mainClass" :style="mainStyle" class="main">
   <div class="drawer-head">
    <span>{{ title }}</span>
    <span class="close-btn" v-show="closable" @click="closeByButton">X</span>
   </div>
   <div class="drawer-body">
    <slot/>
   </div>
  </div>
 </div>
</template>
<script>
export default {
 props: {
  // 是否打開
  display: {
   type: Boolean
  },
  // 標題
  title: {
   type: String,
   default: '標題'
  },
  // 是否顯示關閉按鈕
  closable: {
   type: Boolean,
   default: true
  },
  // 是否顯示遮罩
  mask: {
   type: Boolean,
   default: true
  },
  // 是否點擊遮罩關閉
  maskClosable: {
   type: Boolean,
   default: true
  },
  // 寬度
  width: {
   type: String,
   default: '400px'
  },
  // 是否在父級元素中打開
  inner: {
   type: Boolean,
   default: false
  }
 },
 computed: {
  maskClass: function () {
   return {
    'mask-show': (this.mask && this.display),
    'mask-hide': !(this.mask && this.display),
    'inner': this.inner
   }
  },
  mainClass: function () {
   return {
    'main-show': this.display,
    'main-hide': !this.display,
    'inner': this.inner
   }
  },
  mainStyle: function () {
   return {
    width: this.width,
    right: this.display ? '0' : `-${this.width}`,
    borderLeft: this.mask ? 'none' : '1px solid #eee'
   }
  }
 },
 mounted () {
  if (this.inner) {
   let box = this.$el.parentNode
   box.style.position = 'relative'
  }
 },
 methods: {
  closeByMask () {
   this.maskClosable && this.$emit('update:display', false)
  },
  closeByButton () {
   this.$emit('update:display', false)
  }
 }
}
</script>
<style lang="scss" scoped>
.drawer {
 /* 遮罩 */
 .mask-show {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 10;
  background-color: rgba(0,0,0,.5);
  opacity: 1;
  transition: opacity .5s;
 }
 .mask-hide {
  opacity: 0;
  transition: opacity .5s;
 }
 /* 滑塊 */
 .main {
  position: fixed;
  z-index: 10;
  top: 0;
  height: 100%;
  background: #fff;
  transition: all 0.5s;
 }
 .main-show {
  opacity: 1;
 }
 .main-hide {
  opacity: 0;
 }
 /* 某個元素內部顯示 */
 .inner {
  position: absolute;
 }
 /* 其他樣式 */
 .drawer-head {
  display: flex;
  justify-content: space-between;
  height: 45px;
  line-height: 45px;
  padding: 0 15px;
  font-size: 14px;
  font-weight: bold;
  border-bottom: 1px solid #eee;
  .close-btn {
   display: inline-block;
   cursor: pointer;
   height: 100%;
   padding-left: 20px;
  }
 }
 .drawer-body {
  font-size: 14px;
  padding: 15px;
 }
}
</style>

組件具體使用如下:

<template>
  <div class="box">
    <el-button type="primary" @click="display = true">打開抽屜</el-button>
    <drawer title="我是一個抽屜組件" :display.sync="display" :inner="true" :width="drawerWidth" :mask="false">
      1. Hello, world!
      2. Do you like it?
    </drawer>
  </div>
</template>
<script>
import drawer from '@/components/drawer/drawer'
export default {
  components: { drawer },
  data () {
    return {
      display: false,
      drawerWidth: '500px'
    }    
  }
}
</script>

總結

以上所述是小編給大家介紹的VUE組件中的 Drawer 抽屜實現代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

相關文章

  • Vue組件的實現原理詳細分析

    Vue組件的實現原理詳細分析

    在日常業(yè)務開發(fā)中我們會經常封裝一些業(yè)務組件,下面這篇文章主要給大家介紹了關于Vue組件的實現原理,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • 前端架構vue架構插槽slot使用教程

    前端架構vue架構插槽slot使用教程

    這篇文章主要為大家介紹了前端vue架構插槽slot使用教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-02-02
  • vue?element-ui的table列表中展示多張圖片(可放大)效果實例

    vue?element-ui的table列表中展示多張圖片(可放大)效果實例

    這篇文章主要給大家介紹了關于vue?element-ui的table列表中展示多張圖片(可放大)效果的相關資料,文中通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-08-08
  • vue雙向數據綁定指令v-model的用法

    vue雙向數據綁定指令v-model的用法

    這篇文章主要介紹了vue雙向數據綁定指令v-model的用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue?LogicFlow自定義邊實現示例詳解

    vue?LogicFlow自定義邊實現示例詳解

    這篇文章主要為大家介紹了vue?LogicFlow自定義邊示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • vue如何設置描點跳轉到對應頁面

    vue如何設置描點跳轉到對應頁面

    這篇文章主要介紹了vue如何設置描點跳轉到對應頁面問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • vue-amap根據地址回顯地圖并mark的操作

    vue-amap根據地址回顯地圖并mark的操作

    這篇文章主要介紹了vue-amap根據地址回顯地圖并mark的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • vue-router之nuxt動態(tài)路由設置的兩種方法小結

    vue-router之nuxt動態(tài)路由設置的兩種方法小結

    今天小編就為大家分享一篇vue-router之nuxt動態(tài)路由設置的兩種方法小結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue中同時監(jiān)聽多個參數的實現

    vue中同時監(jiān)聽多個參數的實現

    這篇文章主要介紹了vue中同時監(jiān)聽多個參數的實現方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue3?setup語法糖各種語法新特性的使用方法(vue3+vite+pinia)

    vue3?setup語法糖各種語法新特性的使用方法(vue3+vite+pinia)

    這篇文章主要介紹了vue3?setup語法糖各種語法新特性的使用(vue3+vite+pinia),本文主要是記錄vue3的setup語法糖的各種新語法的使用方法,需要的朋友可以參考下
    2022-09-09

最新評論