【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>
    </>
}

效果

相关推荐
小月土星12 小时前
React + TypeScript 企业级开发实战:从类型约束到组件设计
前端
沙洲12 小时前
Vite 环境变量终极指南:从原理到企业级实战
前端
刘婉晴13 小时前
【Web漏洞】SQL 注入实战技巧
前端·数据库·sql
di24k24k13 小时前
多个 el-form 共用同一 ref 导致表单校验部分失效
前端·javascript·vue.js·elementui
NutShell Wang13 小时前
每帧重建整条路径、每秒倾倒 48MB 给 GC:实时折线图渲染架构的实测复盘
前端·性能优化·架构·图形渲染·数据可视化·vibe coding
JKooll13 小时前
WPS 表格 DISPIMG 函数实战:用 JavaScript 将图片真正嵌入单元格
javascript·wps
小彤花园13 小时前
和 AI 结对写网站:从 JSON 到一整个工具集
前端·人工智能·程序员
RD_daoyi14 小时前
Google核心算法不再通知!全年持续滚动更新
大数据·服务器·前端·网络·搜索引擎·.net
এ慕ོ冬℘゜14 小时前
纯 CSS 实现自定义 Switch 开关(商品上下架滑块)
前端·css
再吃一根胡萝卜14 小时前
dompdf.js 分页功能完整实现指南
前端