【React】漫游式引导

前言

项目中Antd版本较低,升级到有该组件的新版风险过于大,因为考虑到是老项目,不升级为上策(怕出啥幺蛾子),所以抽出为一个内部组件完成需求即可😎~

实践

Tour

复制代码
const Tour = ({
    visible,
    step,
    gap,
}) => {
    const [posInfo, targetElement] = useTarget(
        step.target,
        open = visible,
        gap
    );
    const content = step.content
    return <>
        {visible && <Mask visible={visible} pos={posInfo} />}
        <Popover content={content} trigger="click" open={visible} arrowPointAtCenter>
            <PortalWrapper visible={visible}>
                {() => visible && <div style={{
                    ...(posInfo || CENTER_PLACEHOLDER),
                    position: 'fixed',
                    pointerEvents: 'none',
                }} key={JSON.stringify(posInfo)} />}
            </PortalWrapper>
        </Popover>
    </>
}

效果

相关推荐
@大迁世界17 小时前
Firefox 本地模式:localhost 再见了 ?
前端·架构
米米商聊19 小时前
同名附件为什么被 Map 覆盖?重复键与一对多索引
前端·javascript
echome88820 小时前
Python 异常处理:try、else、finally 的正确搭配
开发语言·前端·python·异常处理·编程技巧
时间的情敌20 小时前
OpenLayers 实战|Vue3 + OpenLayers 完整工程案例(加载天地图、要素、弹窗、绘制、WFS)
前端·openlayers
陈随易20 小时前
下载神器!Motrix 停更三年后重写回归
前端·后端·程序员
前端的日常21 小时前
一个人+AI做情侣食谱小程序,0 费用的服务器
前端·后端
计算机魔术师21 小时前
谷歌搜索广告踩刹车,AI广告成为救命稻草
前端
总要学点什么21 小时前
第81篇:数据可视化-PM2.5分布——让圆点的胖瘦替每座城市报出浓度
前端·信息可视化·echarts·cesium·空间分析
IT_陈寒21 小时前
Vue的v-for里用了个临时变量,页面直接挂了
前端·人工智能·后端
hunter_07621 小时前
一次 iOS 真机签名 409 的完整排查:证书、设备、描述文件为什么总是"对不上"
前端