电话
400 9058 355
通过将 popper 的锚元素设为 `position: fixed`,可使其脱离文档流、随视口固定显示,从而在页面滚动或 appbar 隐藏时仍保持可见,popper 会自动跟随该锚点持续呈现。
在使用 MUI
根本解法:锚元素固定定位(position: fixed)
Popper 的定位逻辑完全依赖 anchorEl 元素的位置。只要锚元素本身始终固定在视口某处(例如右下角),Popper 就能稳定跟随。无需复杂修饰符(如 preventOverflow),更不必监听滚动事件手动重定位。
✅ 正确实践示例:
import { IconButton, Popper, Box, Typography, Button } from '@mui/material';
import { useRef, useState } from 'react';
function ChatBotPopper() {
const popperRef = useRef(null);
const [open, setOpen] = useState(false);
const handleClick = () => setOpen(!open);
const handleClose = () => setOpen(false);
return (
<>
{/* 锚元素:固定定位,脱离滚动影响 */}
theme.zIndex.fab + 1, // 确保高于 FloatingActionButton
}}
>
{/* Popper 自动跟随 fixed 锚点 */}
{({ TransitionProps }) => (
智能客服
您好!有什么可以帮您?
)}
>
);
} ⚠️ 注意事项:

总结:MUI Popper 本身不控制锚点行为,其“始终可见”的能力完全由锚元素的 CSS 定位决定。采用 position: fixed 是最轻量、最可靠、最符合 Web 标准的实现方式——简洁、高效、无副作用。
邮箱:8955556@qq.com
Q Q:8955556
本文详解如何将Go官方present工具(用于生成HTML5...
PySNMP在不同版本中对SNMP错误状态(errorSta...
time.Sleep仅阻塞当前goroutine,其他gor...
PHPfopen()创建含特殊符号的文件名失败主因是操作系统...
WooCommerce中通过代码为分组产品动态聚合子商品的属...
io.ReadFull返回io.ErrUnexpectedE...
本文详解Yii2中控制器向视图传递ActiveRecord数...
本文详解为何通过wp_set_object_terms()为...
Pytest中使用@mock.patch类装饰器会导致补丁泄...
带缓冲的channel是并发安全的FIFO队列;make(c...