Google Chrome переставляет элементы после события onload
Привет!
Хочу разобраться с событиями. Есть 3 блочных элемента. 2 сверху, 1 под ними. Я хочу изменить ширину нижнего элемента по ширине 2х верхних. blank.style.width=triangle_right.offsetLeft-triangle_left.offsetLeft-triangle_left.offsetWidth+"px"; blank - нижний triangle_left и triangle_right - верхние Есть браузер Google Chrome, который переставляет triangle_right влево на 200пх после события window.onload. Библиотеку jQuery использовать не хочу. Потому что это - слишком простая задача. Вопрос: какое событие возникает, когда браузер завершает переставлять элементы после загрузки страницы? Других скриптов нет. Ниже оффтопик/что сделано: По событию onresize проблемы нет. В других браузерах проблемы нет. Добавление задержки в 100мс устраняет проблему на моем компе. |
http://jsfiddle.net/kEauw/4/
На jsfiddle не воспроизводится, т.к. страница большая и проходит больше 100мс до выполнения скрипта. Пока пытался воспроизвести, нашел источник проблемы. Как дождаться загрузки шрифтов? |
Проблема в некорректном, с точки зрения учебников, поведении Google Chrome.
Я написал такой код, который воспроизводит проблему.
<html>
<head>
<style>
@font-face {
font-family: 'Philosopher';
font-style: normal;
font-weight: 400;
src: url([url]http://themes.googleusercontent.com/static/fonts/philosopher/v4/OttjxgcoEsufOGSINYBGLWOb2gHztoQeulij-[/url]
1lvl-8.woff) format('woff');
}
body {
font-family: Philosopher;
font-size: 20px;
}
</style>
<script>
window.onload=function(){console.log('onload event -- '+document.getElementById("a").offsetWidth);}
window.setTimeout('console.log("timeout 10 event -- "+document.getElementById("a").offsetWidth)',10);
window.setTimeout('console.log("timeout 100 event -- "+document.getElementById("a").offsetWidth)',100);
</script>
</head>
<body>
<span id="a">qwe qwe qwe qwe</span>
</body>
</html>
Вывод этого скрипта: onload event -- 186 timeout 10 event -- 186 timeout 100 event -- 159 И нашел другие разговоры о ней тут http://productforums.google.com/foru...me/7VIpByhmU3U По-прежнему прошу помочь разобраться в том, как правильно написать обработчик события - аналог onload без jQuery и других библиотек. |
| Часовой пояс GMT +3, время: 20:30. |