javascript - 添加流外元素会导致回流吗?

标签 javascript jquery html css dom

我有以下代码需要确保对性能敏感:

var $content = $(htmlString);

//Stop new element from triggering reflow? 
$content.css('display', 'none');

//add slide to DOM
$content.appendTo(options.els.$slider);

我不记得是否在任何 DOM 操作时触发了回流,或者是否存在向 DOM 添加流外元素等异常。如果 options.els.$slider 在流中,上面的代码会导致回流吗?

最佳答案

hide method (或更新问题显示的 css method)将 display 属性设置为 none:

display: none;

这将导致该元素从正常的文档流中移除。如果要求不从正常文档流中删除该元素,请改为更改 visibility CSS 属性:

$content.css('visibility', 'hidden');

然而,在将其添加到 DOM 之前设置 display 属性不应导致重排。

请注意,将元素添加到 DOM 后更改可见性将导致 repaint , 然而。可以使用多种不同的工具分析绘制事件,包括 Chrome Developer Tools on the timeline tab .

关于javascript - 添加流外元素会导致回流吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32893397/

相关文章:

javascript - 从样式设置为 % 的元素中获取以像素为单位的宽度?

html - 将 box-shadow 添加到转换后的 div

javascript - 捕获 Node.js 中的错误

javascript - 不支持的配置,将 Nodemailer 降级到 v0.7.1

javascript - 页面代码中的 RequireJS 和遗留问题

jquery - 简单的 jquery 幻灯片导致 CPU 使用率高

javascript - 网站有脚本错误,显示为空白

javascript - 平面数组到多维数组 (JavaScript)

javascript - 帮助需要解决 jslint 错误

html - 如何使用 z-index 相对定位?