弹出框 Popup

基本

  1. <za-cell>
  2. <za-button size="xs" slot="description" @click="visible1 = true">开启</za-button>
  3. 从上方弹出
  4. </za-cell>
  5. <za-cell>
  6. <za-button size="xs" slot="description" @click="visible2 = true">开启</za-button>
  7. 从下方弹出
  8. </za-cell>
  9. <za-cell>
  10. <za-button size="xs" slot="description" @click="visible3 = true">开启</za-button>
  11. 从左侧弹出
  12. </za-cell>
  13. <za-cell>
  14. <za-button size="xs" slot="description" @click="visible4 = true">开启</za-button>
  15. 从右侧弹出
  16. </za-cell>
  17. <za-cell>
  18. <za-button size="xs" slot="description" @click="visible5 = true">开启</za-button>
  19. 从中间弹出
  20. </za-cell>
  21. <za-popup style="zIndex:2000" :visible.sync="visible1" direction="top" maskType="transparent">
  22. <div class="popup-box-top" style="width: 100%;padding: 10px;background: rgba(0,0,0,.7);color: #fff;font-size: 14px;text-align: center;" @click="visible1 = false">
  23. 更新成功,点击关闭弹层
  24. </div>
  25. </za-popup>
  26. <za-popup :visible.sync="visible2" direction="bottom">
  27. <div class="popup-box" style="height: 100%;padding: 20px 20px 100px;background: #fff;">
  28. <za-button size="sm" @click="visible2 = false">关闭弹层</za-button>
  29. <za-button size="sm" @click="showAlert">二次弹窗</za-button>
  30. </div>
  31. </za-popup>
  32. <za-popup :visible.sync="visible3" direction="left">
  33. <div class="popup-box-left" style="width:160px;height: 100%;padding: 20px 20px 100px;background: #fff;">
  34. <za-button size="sm" @click="visible3 = false">关闭弹层</za-button>
  35. </div>
  36. </za-popup>
  37. <za-popup :visible.sync="visible4" direction="right">
  38. <div class="popup-box" style="width:160px;height: 100%;padding: 20px 20px 100px;background: #fff;">
  39. <za-button size="sm" @click="visible4 = false">关闭弹层</za-button>
  40. </div>
  41. </za-popup>
  42. <za-popup :visible.sync="visible5" animation-type="zoom" direction="center">
  43. <div class="popup-box" style="width:160px;height: 160px;padding: 20px;background: #fff;display: flex;justify-content: center;align-items: center;">
  44. <za-button size="sm" @click="visible5 = false">关闭弹层</za-button>
  45. </div>
  46. </za-popup>

设置挂载容器

<za-cell>
  <za-button size="xs" slot="description" @click="visible6 = true">开启</za-button>
  从下方弹出
</za-cell>

<za-popup :visible.sync="visible6" direction="bottom" :get-container="getContainer">
  <div class="popup-box" style="height: 100%;padding: 20px 20px 100px;background: #fff;">
    <za-button size="sm" @click="visible6 = false">设置挂载容器</za-button>
  </div>
</za-popup>

Vue Script

<script name="vue">
const div1 = document.body;
export default {
  data() {
    return {
      visible1: false,
      visible2: false,
      visible3: false,
      visible4: false,
      visible5: false,
      visible6: false,
    }
  },
  methods: {
    showAlert() {
      this.$zaAlert('二次弹窗');
    },
    getContainer: () => div1,
  },
};
</script>

API

Popup Attributes

属性类型默认值可选值/参数说明
visiblebooleanfalse是否显示, 支持.sync 修饰符
directionstring'center''top', 'bottom', 'left', 'right', 'center'弹出方向
get-containerfunc自定义挂载 Dom 节点
animation-typestring'fade''fade', 'door', 'flip', 'rotate', 'zoom', 'moveUp', 'moveDown', 'moveLeft', 'moveRight', 'slideUp', 'slideDown', 'slideLeft', 'slideRight'动画类型(仅在 direction 为 center 时生效)
animation-durationnumber200动画执行时间
has-maskbooleanfalse是否包含遮罩
mask-typestring'normal''transparent', 'normal'遮罩层的类型

Popup Events

事件名称说明回调参数
mask-click点击遮罩后触发的事件event 事件对象

Popup 弹出框 - 图1