除非在使用之前特别引用,否则IE7中的scrollHeight返回不正确的值
scrollHeight in IE7 returns incorrect value unless specifically referenced before used
我一直在为MooTools开发一个Accordion类,它更符合我的需要,但我注意到在IE7中(我仍然需要支持),元素。scrollHeight返回一个不正确的值,除非我在使用它之前特别引用它。例如,我有一个类为"container"answers"collapse "的元素&以下是隐藏在页面中的样式:
.container {
overflow: hidden;
}
/* removed when made visible */
.collapsed {
left: -9999em;
position: absolute;
top: 0px;
}
当我需要显示这个元素时,我移除类,并计算它的scrollHeight。在大多数浏览器中,这工作得很好。然而,在IE7中,以下代码返回的高度明显小于元素的实际scrollHeight:
// remove the collapsed class
elem.removeClass('collapsed');
alert(elem.scrollHeight); // consistently '69px' across all accordion folds
但是,如果我引用元素。首先,警报scrollHeight是正确的:
// remove the collapsed class
elem.removeClass('collapsed');
if (elem.scrollHeight) alert(elem.scrollHeight); // the scrollHeight is correct
是否IE7只需要额外的几毫秒来正确地重新计算元素的scrollHeight,或者有其他东西在起作用?
谢谢你的帮助!
见下表
当元素没有滚动条时,IE会设置scrollHeight等于内容的实际高度;而不是高度元素。scrollWidth是正确的,除了在IE8中,它是5像素了。
和scrollHeight标记为'不正确'的ie5-7。也许它会与offsetHeight一起工作?或者根据其他性质来计算?
这里还提到…
无论你做什么,在IE中访问属性,而不是在body的onload之前已经开火了,否则你会得到奇怪的结果。
相关文章:
- jquery IE7中的第n个选择器
- IE7中的blockUI插件内存泄漏25kb
- IE7/8中的jQuery动态元素错误
- 在使用JavaScript的IE7/8中,数组上的.indexOf函数不起作用
- ie7和ie8中的JQuery/Javascript问题
- IE9中的有效输出,但IE7/IE8中的未定义输出
- Chrome 中的图片映射:事件未触发!在IE7中工作正常
- 对象不支持 IE7 jQuery 中的此属性或方法错误
- IE7中的Javascript在检索时返回错误的值
- Facebook 画布:IFrame 中的内容在 IE7 和 IE8 中被截断
- IE7/IE8 中的 Javascript JSON Date 解析返回 NaN
- IE7中的JS +缓存问题
- .live() 中的 jQuery .select() 在 IE7 和 IE8 上不起作用
- IE8 中的 IE7 模式 - 本地存储不是未定义的
- IE7 和 8 中的 CSS3 和 HTML5
- 为什么我的应用程序中的某些组件在IE7中工作,而在IE9中不起作用
- 为什么`'onhashchange'在IE8的IE7兼容模式的窗口“return”true中
- IE7中的setValue()引发错误
- DHTML,IE7中的多个CSS类
- IE9中的IE7和ie8模式是真实的吗?