javascript - 为什么在chrome和firefox下scrollHeight的取值不同?
高洛峰
高洛峰 2017-04-11 11:35:48
[JavaScript讨论组]

我在使用reactJS开发一个图片画廊的应用,最中心的图片的绝对定位高度等于halfStageH - halfImgH,其中halfImgH是图片高度/2。

该图片在firefox和IE11下都居中(如上图),在chrome下居然跑到了最下面(如下图1)。检查后发现,这张图片在FF下的scrollHeight等于它显示的实际高度447,而在chrome下scrollHeight只有136(如下图2)。


请问为什么在chrome下,scrollHeight不等于它的实际高度呢?136px是从何而来,我毫无头绪,望大神解答。

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
黄舟

我找到了出现这种情况的原因,是React Component在Chrome下的渲染速度太慢了,当componentDidMount执行时,使用findDOMNode获取到的组件对象属性还没有完全渲染出来,所以获取到的height值不等于其真实值。

在外面包覆一层window.onload可以解决这个问题。

阿神

对于标准盒模型来说,
p显示的高度的是它的content高度(height),
offsetHeight = height + paddingTop + paddingBottom + borderTop + borderBottom.
scrollHeight = height + paddingTop + paddingBottom - scrollbarHeight. (有滚动条)
scrollHeight = height + paddingTop + paddingBottom.(无滚动条)

所以对于标准盒模型, height 和 scrollHeight, offsetHeight 值要想相等,就不能设置padding,border也不能有scrollbar出现。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号