Vue implements popover components

<template>
  <div class="view" :class="[isOpen ? 'open' : '']" @click.self="closeChange">
    <slot></slot>
  </div>
</template>

<script>
export default {
  props: {
    isOpen: Boolean.isClose: Function,},methods: {
    closeChange() {
      this.isClose(); ,}}};</script>

<style scoped lang="less">
.view {
  position: absolute;
  left: 0;
  bottom: -100vh;
  width: 100%;
  height: 100vh;
  background: rgba(0.0.0.0.3);
  z-index: 99;
  transition: all 0.5 s;
}
.open {
  transform: translateY(-100%);
}
</style>

Copy the code