jquery - 非整数 DOMElement 高度

标签 jquery css dhtml

我有一个包含行的表格,需要计算出任何行的高度。

var height = $('table').find('tbody > tr').height();
console.log(height);

在我的特定情况下,这会产生 18。好的,所以我使用它来计算可滚动 div 中的索引。那是 index = scrollTop/rowHeight 但有些不对。

经过进一步调查,我发现在这种情况下,IE9 报告的高度实际上是 18.4。使用该值进行计算。

我想不通的是如何获得这个值。我尝试使用 jQuery、innerHeightouterHeight(包括和不包括边距)和 height 的所有方法。他们都返回 18 一个整数!?表格高度超过行数是一个合理的近似值 (18.40625),但是该值会导致细微的舍入误差。我试过 roundfloorceil 都无济于事。

到目前为止,我设法让它工作的唯一方法是将每一行高度固定为某个整数值。但我真的很想取消它,我应该能够计算行高,这样它可以是任何值,只要它是常量即可。

这个 18.4 是计算的 line-height 并将其设置为整数可以解决问题,但我不想处理设备像素。我不明白为什么没有办法获得开发人员工具显示的实际高度值(根据 MSDN 文档 offsetHeight 但该属性是一个整数,它只是错误)。

我需要帮助。

最佳答案

这很痛苦,但我相信您应该能够通过 window.getComputedStyle(elem, null) 调用达到高度。如果您不在标准模式下使用 IE9,则需要改用 IE 专有的 elem.currentStyle 属性(其他浏览器自然会使用标准调用)。请记住,您需要将元素的填充和边框宽度添加到 style.height 值,并且您需要对值执行 parseFloat,因为它会在末尾返回“px”。

关于jquery - 非整数 DOMElement 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5471352/

相关文章:

javascript - 在 jquery 中自动选择通信 radio

javascript - AngularJS post 失败,jQuery ajax 也失败。无 CORS

php - 是否可以用 php 创建 css 规则?

HTML 视频变绿并且无法播放。我该如何修复它?

javascript - 禁用 parentNode -jquery 的所有输入标签

jquery - 如何使用j-query在点击 anchor 标记时找到第一个div id

html - 如何拆分单元格内的表格单元格?

JavaScript - 如何对 div 进行排序

JavaScript 函数对象

javascript - 循环成对的 jQuery 对象