다양한 접근 방식을 사용하여 Chrome/Mac에서 DOM 다시 그리기 강제
특정 시나리오에서는 Mac의 Chrome이 HTML/CSS 요소를 올바르게 다시 그리지 못할 수 있습니다. , 코드가 유효한 경우에도 마찬가지입니다. 이 문제를 해결하기 위해 개발자는 CSS 변환이나 테두리 조작을 사용하여 강제로 다시 그리기를 수행하는 경우가 많습니다.
CSS 변환을 사용하는 표준 접근 방식에는 일시적으로 '-webkit-transform' 속성을 수정하고 트리거할 offsetHeight를 검색하는 작업이 포함됩니다. 다시 그린 다음 원래 변환 값을 복원합니다. 그러나 이 방법은 Chrome/Mac에서는 작동하지 않습니다.
이 제한을 극복하기 위한 대체 접근 방식은 테두리 속성을 전환하여 요소가 약간 점프하도록 효과적으로 강제한 다음 원래 상태로 되돌리는 것입니다. 이 접근 방식에서는 다시 그리기가 발생하는 데 충분한 시간을 보장하기 위해 시간 제한이 필요합니다.
답변에서 제안된 또 다른 방법은 다시 그려야 하는 요소의 상위 요소를 숨기고 표시하는 것입니다. 대부분의 경우 이 간단한 다시 그리기로 충분할 수 있습니다.
더 복잡한 상황에서는 "forceRedraw" 기능이 요소에 빈 텍스트 노드를 삽입한 다음 제거하여 다시 그리기를 보장합니다. 이 함수의 시간 제한은 시각적 점프 속도를 제어합니다.
강제 리플로우 이해
여기에 설명된 기술은 "리플로우"를 강제하는 것을 목표로 합니다. 브라우저는 문서의 레이아웃을 다시 계산합니다. 리플로우를 트리거함으로써 이러한 메소드는 브라우저가 영향을 받는 요소를 올바르게 렌더링하도록 보장합니다.
위 내용은 macOS의 Chrome에서 DOM 다시 그리기를 강제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!