Popup 弹出层

弹出层容器,用于展示弹窗、信息提示等内容。

代码演示

基础用法

<button type="primary" @click="openPop">开启弹出框</button>
<hd-popup ref="popup">
  <view>
    这是一个简单的弹出框
  </view>
</hd-popup>
export default {
  methods: {
    openPop() {
      this.$refs.popup.open()
    }
  }
}

弹出框位置

通过type属性设置弹出位置,默认全屏弹出层(center),可以设置top( 顶部弹出层)bottom(底部弹出层)left(左侧弹出层)bottom(右侧弹出层)center(全屏弹出层)

<button type="primary" @click="openPop" :type="type">开启弹出框</button>
<hd-popup ref="popup">
  <view>
    这是一个简单的弹出框
  </view>
</hd-popup>
export default {
  data() {
    return {
      type: 'bottom'
    }
  },
  methods: {
    openPop() {
      this.$refs.popup.open()
    }
  }
}

关闭弹出框

通过maskClick属性控制点击蒙层是否关闭弹出框,默认允许点击蒙层关闭(maskClicktrue),当不允许点击蒙层关闭时,可以手动关闭弹出框。

<hd-popup ref="popup" maskClick="maskClick">
  <view>
    这是一个简单的弹出框
    <view v-if="!maskClick" @click="onClose">
      <!-- 关闭按钮 -->
      <hd-icon name="ic_circleclose_line" size="48rpx"></hd-icon>
    </view>
  </view>
</hd-popup>
export default {
  data() {
    return {
      maskClick: false,
      type: 'bottom'
    }
  },
  methods: {
    onClose() {
      this.$refs.popup.close()
    }
  }
}

Props

NameDescriptionTypeRequiredDefault
animation开启动画Booleanfalsetrue
type弹出层类型'top( 顶部弹出层)' / 'bottom(底部弹出层)' / 'left(左侧弹出层)'/ 'right(右侧弹出层)'/ 'center(全屏弹出层)'false默认值:'center'
overlay是否显示遮罩Booleanfalsetrue
maskClick是否允许点击蒙层关闭Booleanfalse默认值:true
backgroundColor背景颜色Stringfalsenone
duration动画时长,单位msNumberfalse300
overlayOpacity遮罩的透明度,0-1之间Numberfalse0.4
zIndex自定义层级Numberfalse999

Events

Event NameDescriptionParameters
change--
close弹层关闭时触发-
maskClick遮罩被点击时触发-
click--

Slots

NameDescriptionDefault Slot Content
default--