Javascript 高度变化后,CMS上的Div显示延迟2-3秒,是否有其他选择
我正在尝试在页面加载后尽快更改元素的高度,因为我的代码运行在第三方CMS上,所以我不确定可以做什么,这是我迄今为止尝试过的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() -
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…谢谢,我会这么做的