最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue:左右過渡展開折疊的組件

 更新時間:2023年11月07日 16:24:21   作者:火星學(xué)姐  
在網(wǎng)上找了好久關(guān)于左右過渡動畫折疊的組件,沒有合適的代碼,效果類似于element UI中的Drawer抽屜組件,只不過ele中的都是懸浮的組件,工作中遇到的很多都是占用空間的展開折疊,網(wǎng)上很多也是上下展開收起的組件,于是就自己寫了一個,分享給大家,感興趣的朋友參考下吧

前言:
在網(wǎng)上找了好久關(guān)于左右過渡動畫折疊的組件,沒有合適的代碼,效果類似于element UI中的Drawer抽屜組件,只不過ele中的都是懸浮的組件,工作中遇到的很多都是占用空間的展開折疊,網(wǎng)上很多也是上下展開收起的組件,于是就自己寫了一個。

1.整個應(yīng)用頁面采用彈性盒布局,左邊容器的寬度固定px,右邊容器寬度為 flex:1。

html:

<div class="current-page">
    // 引入組件
    <pack-up>
        <div>我是文字文字文字</div>
    </pack-up>
     <div class="right">
        右邊的數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)
     </div>
  </div>

css:

.current-page{
  width: 100%;
  height: 100%;
  display: flex;
}
.left{
  width: 500px;
}
.right{
  flex: 1;
}

2.關(guān)于組件

html:

.current-page{
  width: 100%;
  height: 100%;
  display: flex;
}
.left{
  width: 500px;
}
.right{
  flex: 1;
}

css:

.curr-contents{
    width: 500px;
    height: 100%;
    position: relative;
    background: lightpink;
    transition: all .5s ease-in-out;
    padding: 0 10px;
    /* transition: height .3s; */
  }
  .curr-contents .pack-ups{
    height: 100%;
    background: lightcyan;
    position: absolute;
    right: 0;
    top: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    transition: all .5s ease-in-out;
  }
  .show-areas{
    transition: all .5s ease-in-out;
  }

核心js代碼:

// 點擊展開 折疊
handlePack(){
  this.openflags=!this.openflags
  const liCon = this.$refs.outerDiv
  let packUps=this.$refs.packUps
  if (this.openflags) { // 展開
    liCon.style.width = 'auto'
    liCon.style.width = this.liConWidth + 'px'
    packUps.style.position='absolute'
    packUps.style.left='auto'
    packUps.style.right='0'
  } else { // 收起
    liCon.style.width = 0 + 'px'
    packUps.style.position='absolute'
    packUps.style.right='auto'
    packUps.style.left='0'
  }
}

利用v-show使得被折疊的內(nèi)容不被銷毀,緩存之前的數(shù)據(jù)
也可以用font-size:0來隱藏內(nèi)容區(qū)

3.完整代碼:

父組件:

<template>
  <div class="current-page">
    <pack-up>
        <div>我是文字文字文字</div>
    </pack-up>
     <div class="right">
        右邊的數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)
     </div>
  </div>
</template>
<script>
import packUp from "./component/packUp"
export default {
  name:'',
  components:{ packUp },
  data(){
    return{}
  },
  mounted(){},
  methods:{}
}
</script>
<style scoped>
.current-page{
  width: 100%;
  height: 100%;
  display: flex;
}
.left{
  width: 500px;
}
.right{
  flex: 1;
}
</style>

子組件:

<template>
  <div class="curr-contents" ref="outerDiv">
    <div class="show-areas" v-show="openflags">
      <!-- 內(nèi)容插槽 -->
      <slot></slot>
    </div>
    <div class="pack-ups" ref="packUps" @click="handlePack">
      <i class="el-icon-arrow-right"></i>
    </div>
  </div>
</template>
<script>
export default {
  name:'',
  data() {
    return {
      liConWidth:500, // 左邊容器的寬度
      openflags:true,
    }
  },
  methods: {
    // 點擊展開 折疊
    handlePack(){
      this.openflags=!this.openflags
      const liCon = this.$refs.outerDiv
      let packUps=this.$refs.packUps
      if (this.openflags) { // 展開
        liCon.style.width = 'auto'
        liCon.style.width = this.liConWidth + 'px'
        packUps.style.position='absolute'
        packUps.style.left='auto'
        packUps.style.right='0'
      } else { // 收起
        liCon.style.width = 0 + 'px'
        packUps.style.position='absolute'
        packUps.style.right='auto'
        packUps.style.left='0'
      }
    }
  }
}
</script>
<style scoped>
 .curr-contents{
    width: 500px;
    height: 100%;
    position: relative;
    background: lightpink;
    transition: all .5s ease-in-out;
    padding: 0 10px;
    /* transition: height .3s; */
  }
  .curr-contents .pack-ups{
    height: 100%;
    background: lightcyan;
    position: absolute;
    right: 0;
    top: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    transition: all .5s ease-in-out;
  }
  .show-areas{
    transition: all .5s ease-in-out;
  }
</style>

相關(guān)文章

  • vue中使用localstorage來存儲頁面信息

    vue中使用localstorage來存儲頁面信息

    這篇文章主要介紹了vue中使用localstorage來存儲頁面信息,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • vue2使用element-ui,el-table不顯示,用npm安裝方式

    vue2使用element-ui,el-table不顯示,用npm安裝方式

    這篇文章主要介紹了vue2使用element-ui,el-table不顯示,用npm安裝方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Vue數(shù)據(jù)與事件綁定以及Class和Style的綁定詳細講解

    Vue數(shù)據(jù)與事件綁定以及Class和Style的綁定詳細講解

    這篇文章主要介紹了Vue數(shù)據(jù)與事件綁定以及Class和Style的綁定,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習吧
    2023-01-01
  • vue使用once修飾符,使事件只能觸發(fā)一次問題

    vue使用once修飾符,使事件只能觸發(fā)一次問題

    這篇文章主要介紹了vue使用once修飾符,使事件只能觸發(fā)一次問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Vue 解決通過this.$refs來獲取DOM或者組件報錯問題

    Vue 解決通過this.$refs來獲取DOM或者組件報錯問題

    這篇文章主要介紹了Vue 解決通過this.$refs來獲取DOM或者組件報錯問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • vue-router 權(quán)限控制的示例代碼

    vue-router 權(quán)限控制的示例代碼

    本篇文章主要介紹了vue-router 權(quán)限控制的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • uniapp嵌套webview無法返回上一級解決方式

    uniapp嵌套webview無法返回上一級解決方式

    uniapp是一款非常強大的跨平臺開發(fā)框架,它可以讓我們只編寫一份代碼,就能在多個平臺上運行,這篇文章主要給大家介紹了關(guān)于uniapp嵌套webview無法返回上一級的解決方式,需要的朋友可以參考下
    2024-05-05
  • vue+elementUI實現(xiàn)表格的增刪改過程

    vue+elementUI實現(xiàn)表格的增刪改過程

    文章介紹了一個使用Vue和Element UI僅在前端實現(xiàn)增刪改功能的示例,未涉及后端知識,主要分為編輯、新增和刪除方法,并提供了全部代碼
    2026-03-03
  • 前端利用vue實現(xiàn)導(dǎo)入和導(dǎo)出功能詳細代碼

    前端利用vue實現(xiàn)導(dǎo)入和導(dǎo)出功能詳細代碼

    最近項目中讓實現(xiàn)一個導(dǎo)入導(dǎo)出Excel的功能,下面這篇文章主要給大家介紹了關(guān)于前端利用vue實現(xiàn)導(dǎo)入和導(dǎo)出功能的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-09-09
  • vue前端開發(fā)輔助函數(shù)狀態(tài)管理詳解示例

    vue前端開發(fā)輔助函數(shù)狀態(tài)管理詳解示例

    vue的應(yīng)用狀態(tài)管理提供了mapState、mapGetters、mapMutations、mapActions四個輔助函數(shù),所謂的輔助函數(shù)分別對State、Getters、Mutations、Actions在完成狀態(tài)的使用進行簡化
    2021-10-10

最新評論

图们市| 绥阳县| 阳春市| 无为县| 平遥县| 辽中县| 辉县市| 城固县| 宜昌市| 双桥区| 中卫市| 祁东县| 岑溪市| 南乐县| 桂平市| 通辽市| 湾仔区| 旌德县| 北流市| 陇西县| 枣庄市| 林州市| 上犹县| 和平县| 甘泉县| 上饶县| 晴隆县| 屏山县| 铜陵市| 三门县| 庆元县| 灵台县| 澄城县| 册亨县| 奇台县| 息烽县| 尚志市| 和田市| 达日县| 黄浦区| 南阳市|