Skip to content

Popup 弹出层

iPhone

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

平台差异说明

APPH5微信小程序支付宝小程序QQ小程序···
适配中

代码示例

部分功能示例,具体可参考示例程序以及文档API。

基础用法

弹出层的内容通过 slot 传入,默认情况下弹出层位于页面中间。

html
<template>
    <fu-popup ref="popupRef">
        <div>弹出层内容</div>
    </fu-popup>

    <fu-button @click="handleOpen">打开</fu-button>
</template>

<script setup>
    import { ref } from 'vue';

    // data数据
    const popupRef = ref();

    // methods方法
    const handleOpen = () => {
        popupRef.value.open();
    };
</script>

设置弹出层方向

通过 mode 属性设置弹出层的方向,可选值为 topbottomleftrightcenter

html
<template>
    <fu-popup ref="popupRef" mode="top">
        <div>弹出层内容</div>
    </fu-popup>

    <fu-button @click="handleOpen">打开</fu-button>
</template>

<script setup>
    import { ref } from 'vue';

    // data数据
    const popupRef = ref();

    // methods方法
    const handleOpen = () => {
        popupRef.value.open();

        // 也可以通过以下方式设置
        // popupRef.value.open('top');
    };
</script>

设置弹出层圆角

通过 radius 属性设置一个值来增加弹出层圆角,单位 px

html
<template>
    <fu-popup ref="popupRef" mode="top" radius="10">
        <div>弹出层内容</div>
    </fu-popup>
</template>

设置弹出层内容局部滚动

如果您需要让弹窗内容局部滚动,局部固定,例如:商城底部弹出的SKU选择的场景,可以按如下思路进行处理:

  • 在弹出层内容外层嵌套一个 scroll-view 组件,设置为竖向滚动,并指定高度(必须)
  • scroll-view 组件下方放一块无需滚动的内容,如下:
html
<template>
    <fu-popup ref="popupRef" mode="bottom">
        <view class="popup-content">
            <scroll-view style="height: 200px;">
                <view>
                    <view v-for="index in 10" :key="index">
                        {{ `第${index}个Iiem` }}
                    </view>
                </view>
            </scroll-view>

            <view class="popup-btn">
                <fu-button @click="handleClose">确定</fu-button>
            </view>
        </view>
    </fu-popup>
</template>

<script setup>
    import { ref } from 'vue';

    // data数据
    const popupRef = ref();

    // methods方法
    const handleClose = () => {
        popupRef.value.close();
    };
</script>

API

属性名说明类型默认值可选值
mode弹出层方向Stringcentertop/bottom/left/right/center
animation是否开启动画Booleantruefalse
isMaskClick蒙版点击是否关闭弹窗Booleantruefalse
bgColor弹出层背景色String#ffffff-
maskBgColor蒙版背景色Stringrgba(0, 0, 0, 0.4)-
safeArea是否适配底部安全区Booleantruefalse
zIndex弹出层层级String|Number997-
showClose是否显示关闭按钮Booleanfalsetrue
closeIconPos关闭按钮位置String--
radius弹出层圆角String|Number0-
事件名说明回调参数
change弹出层状态改变时触发() => void
maskClick蒙版点击时触发() => void
名称说明
default弹出层内容