$('svg').height()
偶然发现了一个有趣的bug(?),它在尝试获得svg高度时出现在Mozilla中。当您尝试以百分比形式设置css SVG容器大小时,jQuery svg.height()将返回不是像素值,而是返回百分比值。
Chrome工作正常。只需在Mozilla Firefox和Chrome中打开这个小提琴,然后比较结果:http://jsfiddle.net/Ltew9pjb/3/
现在的答案很简单,如果SVG使用display:none,Mozilla Firefox由于某种原因会返回百分比值,而当没有display:none时,Mozilla将返回px值。我不知道它真的是一个错误,但现在它是如何工作的。检查这个小提琴:http://jsfiddle.net/Ltew9pjb/4/
所以我想问一下,这是一个真正的Mozilla Firefox或jQuery bug,还是别的什么?
答案 0 :(得分:2)
.height()报告的值不保证是准确的 元素或其父级隐藏。要获得准确的值,请确保 在使用.height()之前,元素是可见的。 jQuery将尝试 暂时显示然后重新隐藏元素以测量它 尺寸,但这是不可靠的(即使是准确的)可以 显着影响页面性能。这个展示和重新隐藏 测量功能可能会在未来的jQuery版本中删除。
所以这不是任何一个的错误。