点复制后 toast 完全看不到,控制台里元素确实创建了,父容器 overflow: hidden 且高度为 0,提示被裁在上方。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,toast 挂在按钮所在的卡片里,卡片有 overflow: hidden 和固定高度,绝对定位的提示超出边界就被裁掉。z-index 给再高也出不了这个裁剪容器。
碰到「复制提示被裁切」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。改完顺手把文档补一句,省得下次自己重新推一遍。
const t = document.createElement('div');
t.style.cssText = 'position:fixed;left:50%;bottom:80px;transform:translateX(-50%);z-index:9999';
document.body.appendChild(t);
监控和日志的时间要对上,时区不一致会多绕很大一圈。临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。
动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。
具体做法是,把 toast 挂到 body 下 改用 fixed 定位;层级给到 9999 并确认祖先没有 transform;显示 1.2 秒后移除节点 避免堆叠。
最后用这个标准收尾,点复制后屏幕底部出现「已复制」提示,1 秒后自动消失,不再被卡片裁掉。
