javascript - 如何在向 dom 元素添加类后强制 ie8 重新绘制

标签 javascript jquery internet-explorer-8

在 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/

相关文章:

javascript - this.helpers 中的箭头函数

Javascript 函数触发 onload

javascript - localStorage + jQuery 自动保存和加载 p

html - :after element's content not taking background:inherit; in IE8

javascript - 使用用户当前时间 JavaScript 更改 CSS

javascript - 一旦应用程序在asp.net中正确运行,就可以防止返回

javascript - 如何检查列表是否可排序?

javascript - jQuery 重定向到另一个文件

css - 无法让某些 CSS 代码在 IE 8 上的 Drupal 7 站点中工作

jquery - 在 Windows XP 上使用 IE8 无法正确显示背景图像 .png