Skip to content

弹出层容器,用于展示弹窗、信息提示等内容,支持上、下、左、右和中部弹出。组件只提供容器,内部内容由用户自定义。

提示

popup弹出层中对应自定义内容的容器中已经内置了scroll-view元素,例如内容超出容器的高度,将会自动获得垂直滚动的特性,如果您因为在slot内容做了滚动的处理,而造成了 冲突的话,请移除自定义关于滚动部分的逻辑。

平台差异说明

AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程序
兼容中兼容中兼容中兼容中

基本使用

  • 通过v-model绑定一个布尔值的变量控制弹出层的打开和收起。
  • 弹出层的内容由用户自定义,将其包裹在组件内部即可。
vue
<template>
  <view>
    <tn-popup v-model="show">
      <view>这里填写弹窗的自定义内容</view>
    </tn-popup>
    <tn-button @click="show = true">打开</tn-button>
  </view>
</template>

<script>
  export default {
    data() {
      return {
        show: false
      }
    }
  }
</script>

设置弹出层的方向

可以通过mode 对方向进行设置,left(左),top(上),right(右),bottom(下),center(中间)。

vue
<tn-popup v-model="show" mode="bottom">
  <view>这里填写弹窗的自定义内容</view>
</tn-popup>

控制弹窗的宽度、高度

这里说的宽度,指的是左边,右边,中部弹出的场景,高度指的是顶部和底部弹出的场景(因为这两个场景宽度都是100%)。

提供了三个参数可以控制弹窗的宽度、高度,lengthwidthheight,在这3个参数中length的优先级最低,三个参数都可以设置指定的数值百分比auto带单位的数值

  • width - 对左、中、右弹框有效。
  • height - 对上、中、下弹窗有效。
vue
<tn-popup v-model="show" mode="bottom" length="30%">
  <view>这里填写弹窗的自定义内容</view>
</tn-popup>

<tn-popup v-model="show" mode="left" width="200rpx">
  <view>这里填写弹窗的自定义内容</view>
</tn-popup>

内部内容局部滚动

如果您需要让弹窗中的内容局部滚动,局部固定,可以按如下思路进行处理:

  1. 在弹窗内容中放一个scroll-view组件,设置为竖向滚动,并指定高度(必须)
  2. scroll-view组件下方放一块无需滚动内容,如下:
vue
<tn-popup mode="bottom" v-model="show">
  <view class="content">
    <scroll-view scroll-y="true" style="height: 300rpx;">
      <view>
        <view v-for="index in 20" :key="index">
          第{{index}}个Item
        </view>
      </view>
    </scroll-view>
    <view class="confrim-btn">
      <tn-button @click="show = false;">确定</tn-button>
    </view>
  </view>
</tn-popup>

API

Props

属性名说明类型默认值可选值
v-model用于控制弹框的弹出与关闭Booleanfalsetrue
mode弹框弹出方向Stringleftright/top/bottom/center
mask显示遮罩Booleantruefalse
length弹框的宽度、高度信息Number|Stringauto-
width弹框的宽度,优先级比length高,仅在左、中、右模式下有效String--
height弹框的高度,优先级比length高,仅在上、中、下模式下有效String--
zoom开启缩放动画,在中间弹出时生效Booleantruefalse
safeAreaInsetBottom开启底部安全区适配Booleanfalsetrue
maskCloseable点击遮罩层可关闭选择器Booleantruefalse
customStyle用户自定义样式Object--
borderRadius显示圆角的大小,单位rpxNumber0-
closeBtn显示关闭按钮Booleanfalsetrue
closeBtnIcon关闭按钮的图标,仅可以使用TuniaoUI内部的图标Stringclose-
closeBtnPosition自定义关闭图标位置,top-left为左上角,top-right为右上角,bottom-left为左下角,bottom-right为右下角Stringtop-rightbottom-left/top-left/bottom-right
closeIconColor关闭按钮图标的颜色String#AAAAAA-
closeIconSize关闭按钮图标大小,单位rpxNumber30-
negativeTop给弹出一个往上的偏移量,防止弹窗与键盘重合,单位rpxNumber0-
marginTop给弹框添加一个顶部边距,防止与导航栏重合,单位为pxNumber0-
zIndex弹窗的zIndexNumber20075-

Slots

名称说明
default弹出层显示的内容

Event

事件名称说明回调参数
open弹出层打开时触发-
close弹出层关闭时触发-