Html 溢出:隐藏在主体上会导致在Safari中另一个元素的转换中间重新绘制文档
我有一个布局,当一个元素被点击时,它会展开并打开一个模态 对话单击时,Html 溢出:隐藏在主体上会导致在Safari中另一个元素的转换中间重新绘制文档,html,css,Html,Css,我有一个布局,当一个元素被点击时,它会展开并打开一个模态 对话单击时,position:fixed克隆将附加到具有相同位置属性的主体,以便它显示在与原始元素相同的位置。然后,克隆将展开以填充页面,充当对话框 正文中添加了一个noscroll类 .noscroll { overflow: hidden; transform: none; position: relative; } 这就是问题开始出现的地方。当克隆元素处于转换其位置属性的中间时,文档重画发生,导致转换冻结
position:fixed
克隆将附加到具有相同位置属性的主体,以便它显示在与原始元素相同的位置。然后,克隆将展开以填充页面,充当对话框
正文中添加了一个noscroll
类
.noscroll {
overflow: hidden;
transform: none;
position: relative;
}
这就是问题开始出现的地方。当克隆元素处于转换其位置属性的中间时,文档重画发生,导致转换冻结,然后在重画结束时继续。
这只会因为某些原因在狩猎中发生。这是时间表的截图
来证明我的意思
当我不添加noscroll类时,这不会发生。这让我抓狂,我已经尝试了所有的方法,但这种情况一直在发生。我今天遇到了这个问题,解决方法是调整我页面上所有图像的大小 对我来说,巨大的绿色布局活动实际上不是布局或绘画,而是合成的。我理解这个阶段是浏览器将所有内容都绘制到屏幕上的阶段
这是(我认为)因为页面上的所有图像都太大,无法显示它们的大小~14mb用于最大300px宽的图像。将我的所有图像调整为更合适的300x400,完全解决了这个问题。对于浏览器来说,隐藏和显示一堆巨大的图像是非常困难的,这是有道理的。仍然完全不知道为什么这个问题是由溢出触发的:隐藏的,仅在Safari上。我今天遇到了这个问题,解决方法是调整页面上所有图像的大小 对我来说,巨大的绿色布局活动实际上不是布局或绘画,而是合成的。我理解这个阶段是浏览器将所有内容都绘制到屏幕上的阶段 这是(我认为)因为页面上的所有图像都太大,无法显示它们的大小~14mb用于最大300px宽的图像。将我的所有图像调整为更合适的300x400,完全解决了这个问题。对于浏览器来说,隐藏和显示一堆巨大的图像是非常困难的,这是有道理的。仍然完全不知道为什么这个问题是由
溢出:hidden
触发的,并且只在Safari上