首页 > web前端 > css教程 > 如何在 Mac 上的 Chrome 中强制 DOM 重绘?

如何在 Mac 上的 Chrome 中强制 DOM 重绘?

Patricia Arquette
发布: 2024-12-25 03:03:08
原创
701 人浏览过

How to Force a DOM Redraw in Chrome on Mac?

在 Chrome/Mac 上强制 DOM 重绘

问题:
在 Chrome for Mac 中,强制重绘使用常见的 offsetHeight 技巧不会工作。

当前黑客:
解决方法包括添加和删除边框以强制元素在视觉上跳跃。但是,它会带来明显的延迟,并且在较低的超时下可能无效。

建议的解决方案:
已证明成功的替代方法是:

// in jQuery
$('#parentOfElementToBeRedrawn').hide().show(0);

// in plain JS
document.getElementById('parentOfElementToBeRedrawn').style.display = 'none';
document.getElementById('parentOfElementToBeRedrawn').style.display = 'block';
登录后复制

改进的解决方案:
为了更有保证的重绘,以下方法插入一个空将文本节点插入到元素中:

var forceRedraw = function(element) {
  if (!element) { return; }
  var n = document.createTextNode(' ');
  var disp = element.style.display;
  element.appendChild(n);
  element.style.display = 'none';
  setTimeout(function() {
    element.style.display = disp;
    n.parentNode.removeChild(n);
  }, 20); // Adjust timeout as needed
};
登录后复制

此方法可确保完整的 DOM 重绘,可能解决 Mac 版 Chrome 中渲染不正确的问题。

以上是如何在 Mac 上的 Chrome 中强制 DOM 重绘?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板