Popover
Popover 气泡弹出框
代码示例
import { BfCard, BfPopover } from '@bud-fe/react-taro-ui';import { Button, View } from '@tarojs/components';import React, { useState } from 'react';export default () => {const [lightVisible, setLightVisible] = useState(false);const [darkVisible, setDarkVisible] = useState(false);const [left, setLeft] = useState(false);const [leftStart, setLeftStart] = useState(false);const [leftEnd, setLeftEnd] = useState(false);const [bottom, setBottom] = useState(false);const [bottomStart, setBottomStart] = useState(false);const [bottomEnd, setBottomEnd] = useState(false);const [top, setTop] = useState(false);const [topStart, setTopStart] = useState(false);const [topEnd, setTopEnd] = useState(false);const [offset, setOffset] = useState(false);return (<><View className="group-title">基础用法</View><BfPopovervisible={lightVisible}content={<View style={{ padding: 20 }}><View>达成范围:90-100%</View><View>低于90%则为0,高于100%为100%</View></View>}theme="light"location="bottom-start"onClick={() => setLightVisible((pre) => !pre)}onOpen={() => {console.log('打开菜单时触发');}}onClose={() => {console.log('关闭菜单时触发');}}><Button>明亮风格</Button></BfPopover><BfPopovervisible={darkVisible}content={<View style={{ padding: 20 }}><View>达成范围:90-100%</View><View>低于90%则为0,高于100%为100%</View></View>}location="bottom-end"onClick={() => setDarkVisible((pre) => !pre)}><Button>暗黑风格</Button></BfPopover><BfPopovervisible={left}content={<View style={{ padding: 20 }}><View>达成范围:90-100%</View><View>低于90%则为0,高于100%为100%</View></View>}location="left"onClick={() => setLeft((pre) => !pre)}><Button>left</Button></BfPopover><BfPopovervisible={leftStart}content={<View style={{ padding: 20 }}><View>达成范围:90-100%</View><View>低于90%则为0,高于100%为100%</View></View>}location="left-start"onClick={() => setLeftStart((pre) => !pre)}><Button>left-start</Button></BfPopover><BfPopovervisible={leftEnd}content={<View style={{ padding: 20 }}><View>达成范围:90-100%</View><View>低于90%则为0,高于100%为100%</View></View>}location="left-end"onClick={() => setLeftEnd((pre) => !pre)}><Button>left-end</Button></BfPopover><BfPopovervisible={bottom}content={<View style={{ padding: 20 }}><View>达成范围:90-100%</View><View>低于90%则为0,高于100%为100%</View></View>}location="bottom"onClick={() => setBottom((pre) => !pre)}><Button>bottom</Button></BfPopover><BfPopovervisible={bottomStart}content={<View style={{ padding: 20 }}><View>达成范围:90-100%</View><View>低于90%则为0,高于100%为100%</View></View>}location="bottom-start"onClick={() => setBottomStart((pre) => !pre)}><Button>bottom-start</Button></BfPopover><BfPopovervisible={bottomEnd}content={<View style={{ padding: 20 }}><View>达成范围:90-100%</View><View>低于90%则为0,高于100%为100%</View></View>}location="bottom-end"onClick={() => setBottomEnd((pre) => !pre)}><Button>bottom-end</Button></BfPopover><BfPopovervisible={top}content={<View style={{ padding: 20 }}><View>达成范围:90-100%</View><View>低于90%则为0,高于100%为100%</View></View>}location="top"onClick={() => setTop((pre) => !pre)}><Button>top</Button></BfPopover><BfPopovervisible={topStart}content={<View style={{ padding: 20 }}><View>达成范围:90-100%</View><View>低于90%则为0,高于100%为100%</View></View>}location="top-start"onClick={() => setTopStart((pre) => !pre)}><Button>top-start</Button></BfPopover><BfPopovervisible={topEnd}content={<View style={{ padding: 20 }}><View>达成范围:90-100%</View><View>低于90%则为0,高于100%为100%</View></View>}location="top-end"onClick={() => setTopEnd((pre) => !pre)}><Button>top-end</Button></BfPopover><View /><BfCardtitle="标题"content={<><BfPopovervisible={offset}content={<View style={{ padding: 20 }}><View>达成范围:90-100%</View><View>低于90%则为0,高于100%为100%</View></View>}location="bottom-start"offset={[-12, 7]}onClick={() => setOffset((pre) => !pre)}><Button>设置偏移</Button></BfPopover><View>123123</View><View>123123</View><View>123123</View><View>123123</View><View>123123</View></>}/><View>这里是文字这里是文字这里是文字</View><View>这里是文字这里是文字这里是文字</View><View>这里是文字这里是文字这里是文字</View></>);};
API
属性名 | 描述 | 类型 | 默认值 |
---|---|---|---|
visible | 是否展示气泡弹出层 | boolean | (必选) |
content | 弹出内容 | any | (必选) |
theme | 主题 | IBfPopoverTheme | dark |
location | 弹出位置,里面具体的参数值可以参考上面的位置自定义例子 | string | bottom |
offset | 出现位置的偏移量 | string[] | number[] | [0, 7] |
arrowOffset | 箭头偏移量 | number | -- |
targetId | 自定义目标元素 id | string | -- |
showArrow | 是否显示小箭头 | boolean | true |
closeOnOutsideClick | 是否在点击外部元素后关闭菜单 | boolean | true |
onClick | 点击切换 popover 展示状态 | () => void | -- |
onOpen | 点击菜单时触发 | () => void | -- |
onClose | 关闭菜单时触发 | () => void | -- |