我有一個使用某些元素偏移量的腳本。我打算解僱這個腳本:問題頁面渲染上的運行腳本vs頁面加載,在webkit中
window.addEventListener('load', function() {
...
}
當我用這個方法,所有的DOM元素的定義,但偏移值是錯誤的。我可以通過關閉一些css值來獲得所提供的偏移量。快速/焦頭爛額,我申請:
window.addEventListener('load', function() {
function my_func(){
...
}
window.setTimeout(my_func, 1000);
});
這使得正確的偏移,但我只是覺得它的膠帶。
我的最後一次嘗試是迫使WebKit的渲染,但是這也有錯偏移:
window.addEventListener('load', function() {
function my_func(){
...
}
document.getElementById('wrap').style.display = 'none';
document.getElementById('wrap').style.display = 'block';
my_func();
});
任何建議嗎?或者爲什麼發生這種情況的解釋。我正在測試的瀏覽器是Chrome。
編輯:
偏移量是一個DOM結構的:
<div id="wrap">
<div>
<p>...</p>
<p>...</p>
<p>...</p>
</div>
<div>
<p>...</p>
</div>
...
</div>
我由(用於)截枝以上的 「#wrap格」 的節點列表中訪問該偏移。 如果我關閉行高和字體大小,我將得到佈局完全呈現之前計算的偏移量。
在使用offsetHeight之前調整每個p和div的行高,字體大小和顯示不會產生任何影響。
...哪個...補償...?你怎麼看他們?你在哪裏讀過它們? – jAndy 2013-03-08 23:48:02
你是否在使用網頁字體?他們在'onload'火災之前加載嗎? – Halcyon 2013-03-09 00:00:29