延迟基于Javascript的Tumblr宽度计算

时间:2014-01-06 13:56:13

标签: javascript css tumblr

我的Tumblr主题CSS宽度由javascript代码更改(根据帖子数量)。

主题加载了标准宽度,在知道帖子数量后,新的宽度由以下javascript函数计算(以适应帖子)。

问题是这个计算的一个很大的延迟(它会等到帖子的内容被加载)!

是否可以根据帖子数量立即计算和设置宽度,而不是等待帖子内容加载?

<script type="text/javascript">

function resizedivs() {

$ = function(id) { return document.getElementById(id); }

fschildren = $("fs_wrapper").childNodes;
postc = 0;
thedivs = new Array();

for(i = 0; i < fschildren.length; i++) {
    if(fschildren[i].tagName == "DIV") {
        thedivs[postc] = fschildren[i];
        postc++;
    }
}

newwidth = 0;
for(i = 0; i < thedivs.length; i++) {
    if(newwidth <= document.body.clientWidth) {
        newwidth = newwidth + (thedivs[i].clientWidth)+15;
    }

    if(newwidth >= document.body.clientWidth || newwidth >= 1300) { // 100 for padding minus 15 extra
        newwidth = newwidth - (thedivs[i].clientWidth+15);
        break;
    }
}

$("fs_wrapper").style.width = newwidth-0+"px";
$("fs_wrapper").style.position = "relative";
$("fs_wrapper").style.left = "0px";

$("sec2").style.width = newwidth-0+"px";
$("sec2").style.position = "relative";
$("sec2").style.left = "0px";

$("sec3").style.width = newwidth-0+"px";
$("sec3").style.position = "relative";
$("sec3").style.left = "0px";

}

window.onresize = function() {
    resizedivs();

}

window.onload = function() {
    resizedivs();
}
</script>

0 个答案:

没有答案