wiewport가 변경 될 때 기본 속성에 대해 하나의 링크 된 CSS 파일과 변경되는 뉴스에 대해 두 번째 CSS가 있습니다. JS 스크립트의 끝에서 요소의 offsetWidth를 전역 값 NavW에 넣었습니다. 그래서 JS는 잘못된 값을 반환하는 것처럼 보입니다. DOM에서만 계산되지는 않지만 새로운 기본 CSS 속성을 기반으로합니다. 그러나 대상 요소가 올바르게 렌더링되었습니다. 조건에 '2'값은 css 파일이 아니고 아이콘 인 Link 요소가 있기 때문입니다.offsetWidth가 알려지지 않은 값 (JS)을 반환합니다.
function switchTheme(newHref)
{
var newIndex;
newIndex = document.getElementsByTagName("link").length;
var newTheme = document.createElement("link");
newTheme.setAttribute("rel", "stylesheet");
newTheme.setAttribute("type", "text/css");
newTheme.setAttribute("href", newHref);
if (newIndex == 2)
{
document.getElementsByTagName("head").item(newIndex - 2).appendChild(newTheme);
}
else if (newIndex > 2)
{
var themeToReplace = document.getElementsByTagName("link").item(2);
document.getElementsByTagName("head").item(0).replaceChild(newTheme, themeToReplace);
}
NavW = document.getElementById("wrap").offsetWidth;
}
그래서 질문은 무엇을? – morkro
현재 스타일 시트를 방해하지 않고 항목의 실제 값을 얻을 수 있는지 여부를 알아야합니다. dom에있는 렌더링 된 요소의 크기가 정확하고 올바르게 계산되지 않는 것을 보는 것은 이상합니다. – FlowHoa
그런 다음 코드 및/또는 jsFiddle에 대한 링크를 사용하여 질문을 편집하십시오. 아무도 그렇게하지 않고 당신을 도울 수 있습니다. – morkro