Javascript 高度变化后,CMS上的Div显示延迟2-3秒,是否有其他选择

Javascript 高度变化后,CMS上的Div显示延迟2-3秒,是否有其他选择,javascript,html,css,Javascript,Html,Css,我正在尝试在页面加载后尽快更改元素的高度,因为我的代码运行在第三方CMS上,所以我不确定可以做什么,这是我迄今为止尝试过的 var myWindow = myWindow || {}; myWindow.Resize = function () { //$(".container-box").height($("#contentRow").height() - 15); setHeight("container-box", $("#contentRow").height() -

我正在尝试在页面加载后尽快更改元素的高度,因为我的代码运行在第三方CMS上,所以我不确定可以做什么,这是我迄今为止尝试过的

var myWindow = myWindow || {};

myWindow.Resize = function () {
    //$(".container-box").height($("#contentRow").height() - 15);
    setHeight("container-box", $("#contentRow").height() - 15);
};

window.onload = function () {
    myWindow.Resize();
    //$("#container-root").show();
    showStuff("container-root");
    $(window).resize(myWindow.Resize());
}

function showStuff(id) {
    document.getElementById(id).style.display = 'block';
}

function setHeight(className, size) {
    document.getElementsByClassName(className).height = size;
}

我猜你说的“慢”是指直到div出现一段时间后才发生

原因是您正在使用
load
事件,该事件直到页面加载周期的后期才会发生

如果要尽快更改高度,请将脚本标记放在页面底部,然后立即更改,而无需等待
load

如果不能将脚本标记放在页面底部(某些CMS很难),可以使用jQuery的回调,这比加载要快得多:

    $(myWindow.Resize);

旁注:您的
调整大小
处理程序连接不正确:

$(window).resize(myWindow.Resize());
// Remove these ----------------^^
有了()之后,您将调用
myWindow.Resize()
,并将其返回值(
未定义的
)传递到
$(window)中。Resize(…)
,与
foo(bar())
调用
bar
并将其返回值传递到
foo
中的方式完全相同


还要注意,您的
setHeight
功能根本无法工作。您使用的是
getElementsByClassName
,然后将返回的内容分配给
height
属性。但是您得到的是元素的集合,而不是单个元素,并且该集合没有
height
属性


上面您调用
setHeight
的注释掉的jQuery行可以工作。

您所说的
是什么意思?它似乎很慢
?最快的应该是香草,其他的都是香草的翻版。您可以更改元素的类并让CSS处理高度,但我不知道这是否可以使它更快或更好地满足您的要求XDI是否已经尝试了最快的代码?您为什么要更改高度?基于百分比的单位不能做到这一点吗?然而,没有用例很难说。你已经展示了你的尝试,但是你期望什么,你得到什么?你怎么知道这很慢?除了缓存NodeList,我怀疑它能快得多。你用jQuery标记了这个…然后根本没有使用jQuery…谢谢,我会这么做的