>웹 프론트엔드 >CSS 튜토리얼 >Mac의 Chrome에서 DOM 다시 그리기를 강제하는 방법은 무엇입니까?

Mac의 Chrome에서 DOM 다시 그리기를 강제하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-25 03:03:08667검색

How to Force a DOM Redraw in Chrome on Mac?

Chrome/Mac에서 강제 DOM 다시 그리기

문제:
Mac용 Chrome에서 다시 그리기를 강제합니다. 일반적인 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.