【发布时间】:2015-03-20 04:42:51
【问题描述】:
我有一个 div,里面有很多东西。一方面,它有一个图表(来自 amCharts),还有几个来自 noUiSlider 的滑块。它也由许多 AngularJS 功能组成。我尝试通过执行$('#container').addClass('hidden') 来隐藏页面,其中hidden 具有规则display:none !important。
它可以工作,但可能需要 500 毫秒才能执行。如果我使用height: 0 !important 而不是display: none !important,情况也是如此。当用户单击不同的菜单项时,我基本上是在尝试模仿页面更改,因此我希望它至少不会像现在那样闪烁。我想知道这里是否有任何 CSS 专家知道快速隐藏大而复杂的 div 的更好方法。
顺便说一句,我正在使用带有 i3 第二代的 Chrome。不是最好的处理器,但有足够多的人使用这台高质量的机器,我想让它更流畅。
注意:我没有 JSFiddle,因为页面非常复杂,需要 MySQL 后端。
【问题讨论】:
-
能否提供一个 jsFiddle 示例来重新创建场景。
-
尝试淡化 div 吗?
-
我只用 AmChart 制作了一个 JSBin,但它似乎立即消失了。重新创建整个页面并不容易,而且我不想在线发布代码。我只是想知道是否有人知道更好的方法。
-
褪色也差不多。疯狂的是,它隐藏起来会卡住,但会立即再次显示 div。
-
500ms 很慢,但话又说回来,如果页面非常复杂,你要求浏览器完全重新计算布局,所以这不是不可能的,如果你愿意,不不显示的东西,除了告诉它
display: none之外别无选择。
标签: javascript css performance