我最近注意到 Chrome 在申请时出现呕吐现象display: none;
到很多节点:
CodePen 示例 http://codepen.io/mattdietsche/pen/JomjWx
在上面的 CodePen 中,您可以看到切换时的滞后display: none;
1000 个元素。如果您将 1000 调到 3000 并再次切换,该选项卡将完全挂起。相同的代码在 Safari 中运行没有任何延迟,并且我 90% 确定这在 Chrome 中运行良好,直到上个月左右,所以我猜测这是最近的 Chrome 错误。还有其他人遇到过这个问题并找到解决方法吗? (我有一个 Web 应用程序功能,可以渲染 3000 多个元素,用 CSS 隐藏它们,然后用 JS 按需显示它们。目前该页面甚至无法加载。)
编辑:应该提到我在 Chrome 41.0.2272.76 和 Canary 43.0.2318.0 中看到了这一点。这似乎确实是 Chrome 41.x 中某个地方出现的错误,并且已被报告。
$("button.hide").on("click",function(){
$("div.wrap").toggleClass("hide");
});
.wrap.hide p {
display: none;
}
button {
cursor: pointer;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class='hide'>toggle 'display: none;'</button>
<!-- * This just creates a div containing 1000 <p> tags */ -->
<div class='wrap'>
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
...
<p>998</p>
<p>999</p>
<p>1000</p>
</div>
有一个解决方法。使用 { 高度:0; } 而不是 { 显示:无; } 和 { 高度:初始; } 而不是 { 显示:块; }。
当我在 Chrome 中遇到 1300 多个项目的同样问题时,我使用了它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)