亲宝软件园·资讯

展开

vue Split面板分割

搬砖界的小菇娘 人气:0

<template>
  <div class="split-pane-wrapper">
    <div class="pane pane-left" :style="{width:leftOffsetPercent}">
      <button @click="handleClick">点击减少左侧宽度</button>
    </div>
    <div class="pane-trigger-con" :style="{left:triggerLeft,width:triggerWidthPx}"></div>
    <div class="pane pane-right" :style="{left:leftOffsetPercent}"></div>
  </div>
</template>

<script>
export default {
  components: {},

  data() {
    return{
      // 在这定义一个值。这样用户可以直接指定占比的值
      // 在页面css 布局使用的值 使用计算属性拼接即可
      leftOffset:0.3,
      triggerWidth:8
    }
  },
  computed:{
    // 动态属性去拼接生成css 实际需要的代%形式的数据
    leftOffsetPercent(){
      return `${this.leftOffset * 100}%`
    },
    triggerWidthPx(){
      return `${this.triggerWidth}px`
    },
    triggerLeft(){
      return `calc(${this.leftOffset * 100}% - ${this.triggerWidth/2}px)`
    },
  },

  methods: {
    handleClick(){
      this.leftOffset -= 0.02
    }
  },
}
</script> 

<style lang="scss" scoped>
  .split-pane-wrapper{
    width: 100%;
    height: 100%;
    position: relative;
    .pane{
      position: absolute;
      height: 100%;
      top:0;
      &-left{
        /*width: 30%;*/
        background: brown;
      }
      &-right{
        right: 0;
        bottom: 0;
        /*left: 30%;*/
        background: chartreuse;
      }
      &-trigger-con{
        z-index: 100;
        height: 100%;
        background: red;
        position: absolute;
        top: 0;
      }
    }
  }
</style>

加载全部内容

相关教程
猜你喜欢
用户评论