질문은 오래되었지만 여기에 내 경험을 추가하고 싶었습니다. 위의 합의는 jQuery의 반올림이 반올림되지 않은 계산만큼 효과적이라는 것 같습니다. .
내 요소는 일반적으로 유동적이지만 AJAX를 통해 동적으로 변경되는 콘텐츠입니다. 콘텐츠를 전환하기 전에 일시적으로 요소의 크기를 잠 가서 전환 중에 레이아웃이 튀지 않도록합니다. 다음과 같이 jQuery를 사용하는 것을 발견했습니다.
$element.width($element.width());
실제 너비와 계산 된 너비 사이에 하위 픽셀 차이가있는 것처럼 재미를 유발합니다. (특히, 텍스트의 한 줄에서 다른 줄로 단어가 이동하는 것을 볼 수 있는데, 이는 단지 잠긴 것이 아니라 너비가 변경되었음을 나타냅니다.) 다른 질문에서- 요소의 실제 부동 소수점 너비 가져 오기 -발견했습니다 그 밖으로 window.getComputedStyle(element).width반올림 계산을 반환합니다. 그래서 위의 코드를 다음과 같이 변경했습니다.
var e = document.getElementById('element');
$('#element').width(window.getComputedStyle(e).width);
그리고 그 코드를 사용 하면 재미있는 바운싱이 없습니다! 그 경험은 반올림 값이 실제로 제안 것 같다 않는 오른쪽 브라우저에 문제? (제 경우에는 Chrome 버전 26.0.1410.65입니다.)