【发布时间】:2010-10-12 15:03:49
【问题描述】:
在编写 Javascript 时,我从 earlier 获得了帮助,该函数获取隐藏元素的高度,有人将我推荐给 Prototype 函数 getDimensions()。在示例中,他们设置了“可见性:隐藏;位置:绝对;显示:块;”,这可以有效地让我们测量 clientHeight 在显示时的值。然后他们把一切都放回去了,你就可以开始你的生意了。我没有使用原型,但我认为它工作正常。然而,当我试图在自己的代码中模仿相同的函数时,使用“位置:绝对;”放弃了测量。没有它它可以正常工作,但是它的使用使我们能够在一瞬间做到这一点而不会扭曲设计。我的版本在下面,知道为什么它不起作用吗?
var objStyle = obj[objName].style;
// Record original style values
var visibility = objStyle.visibility;
//var position = objStyle.position;
var display = objStyle.display;
// Modify object for measuring
objStyle.visibility = "hidden";
//objStyle.position = "absolute";
objStyle.display = "block";
// Measure height
height = obj[objName].clientHeight;
// Fix object
objStyle.visibility = visibility;
//objStyle.position = position;
objStyle.display = display;
// Return height
return parseInt(height);
提前感谢您的帮助。
【问题讨论】:
-
你在测试什么浏览器? “不工作”是指你得到一个错误吗? 0?什么?
-
如上所述,测量结果不准确。如果我没记错的话,它比正确高度少了 40-50 像素左右,最终通过简单地省略了 position = "absolute";谢谢
-
您是否在页面上使用了文档类型?
标签: javascript html css dom