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 중국어 웹사이트의 기타 관련 기사를 참조하세요!