【发布时间】:2019-12-13 19:05:33
【问题描述】:
我想找到html h1元素的高度的px值。
var height = $("h1").height();
console.log(height);
$(window).on("scroll", function() {
if ($(window).scrollTop() >= height) {
// ...
} else {
// ...
}
});
h1 {
font-size: 3.5rem;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h1>Foo</h1>
3.5rem 是56px
当我在 CSS 上的 h1 标签上写 56px 时,我可以找到高度 56px。但是,如果我写了3.5rem,它不会计算为56px。
我确实使用.scrollTop 函数对其进行了测试。
当我使用height() 时,为什么我没有得到3.5rem 到56px 的值?
如何将rem 值转换为px?
【问题讨论】:
-
font-szie必须是font-size,但我认为这只是问题中的一个错字。 -
函数 convertRemToPixels(rem) { return rem * parseFloat(getComputedStyle(document.documentElement).fontSize); }
-
还要注意 jQuery 从 DOM 读取值,因此它总是返回
px,尽管 CSS 值中使用了单位。您可以从我编辑到您的问题的 sn-p 中看到这一点。鉴于 sn-p 编辑器的默认样式,3.5rem大约是65像素,并在 Chrome、Firefox 和 IE11(可能还有所有其他浏览器,但我没有测试这些浏览器)中返回。所以换句话说,我看不出你的代码有任何问题,它应该可以正常工作。