javascript – 在向dom元素添加类之后如何强制ie8重绘 - 代码日志

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

在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');
        }
http://stackoverflow.com/questions/13783840/how-to-force-ie8-to-repaint-after-adding-a-class-to-a-dom-element

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:javascript – 在向dom元素添加类之后如何强制ie8重绘