在 ie8 中,如果更改类名时元素不使用关联的 css 进行“重新绘制”,如何强制浏览器刷新而不影响 ie8 性能?
这篇文章 ( How can I force WebKit to redraw/repaint to propagate style changes? ) 建议调用 offsetHeight 来强制重新绘制。
这篇文章 ( http://www.tek-tips.com/viewthread.cfm?qid=1688809 ) 有一条评论,建议从 body 元素中添加和删除一个类。
这两种方法都会降低 ie8 的性能,而第一种方法会对我的布局产生副作用。
最好的方法是什么?
最佳答案
我针对 ie8 问题提出的解决方案是在我要更改的元素的近父元素上添加/删除一个类。因为我使用的是现代化工具,所以我检查 ie8,然后执行此添加/删除操作以获取要绘制的新 css。
$uicontext.addClass('new-ui-look');
if ($('html').is('.ie8')) {
// IE8: ui does not repaint when css class changes
$uicontext.parents('li').addClass('z').removeClass('z');
}
关于javascript - 如何在向 dom 元素添加类后强制 ie8 重新绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13783840/