• Pan's avatar
    add · 6eca8e47
    Pan authored
    6eca8e47
Resizer.vue 1.74 KB
<template>
    <div :class="classes" @mousedown="onMouseDown"></div>
</template>
<script>
    export default {
      props: {
        split: {
          validator(value) {
            return ['vertical', 'horizontal'].indexOf(value) >= 0
          },
          required: true
        },
        onMouseDown: {
          type: Function,
          required: true
        }
      },
      data() {
        const classes = ['Resizer', this.split, 'className'];
        return {
          classes: classes.join(' ')
        }
      }
    }
</script>
<style scoped>
    .Resizer {
        -moz-box-sizing: border-box;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        background: #000;
        position: absolute;
        opacity: .2;
        z-index: 1;
        /*-moz-background-clip: padding;*/
        /*-webkit-background-clip: padding;*/
        /*background-clip: padding-box;*/
    }

    /*.Resizer:hover {*/
        /*-webkit-transition: all 2s ease;*/
        /*transition: all 2s ease;*/
    /*}*/

    .Resizer.horizontal {
        height: 11px;
        margin: -5px 0;
        border-top: 5px solid rgba(255, 255, 255, 0);
        border-bottom: 5px solid rgba(255, 255, 255, 0);
        cursor: row-resize;
        width: 100%;
    }

    .Resizer.horizontal:hover {
        border-top: 5px solid rgba(0, 0, 0, 0.5);
        border-bottom: 5px solid rgba(0, 0, 0, 0.5);
    }

    .Resizer.vertical {
        width: 11px;
        height: 100%;
        border-left: 5px solid rgba(255, 255, 255, 0);
        border-right: 5px solid rgba(255, 255, 255, 0);
        cursor: col-resize;
    }

    .Resizer.vertical:hover {
        border-left: 5px solid rgba(0, 0, 0, 0.5);
        border-right: 5px solid rgba(0, 0, 0, 0.5);
    }
</style>