jQuery获取汽车高度元素的高度

| 有什么方法可以返回已经设置为auto的元素的高度?当我调用$(\“#element \”)。height();时,我只会得到0。 这是jQuery代码。 img.height()返回0,因此最终结果为off。
img.css({top: (img.parent().height() - img.height()) /2, left: (img.parent().outerWidth() - img.outerWidth()) / 2});
HTML看起来像这样:
<div id=\"exploreImage\" class=\"virtual-room-large\" style=\"width: 288px; height: auto; top: 185px; left: 89px; \">
    
已邀请:
您尝试过
$(\"#element\").outerHeight()
吗?它获取计算出的高度,而不是显式设置的高度。     
我遇到了同样的问题,并在这里找到了解决方案: http://www.fortwaynewebdevelopment.com/jquery-width-or-height-always-returns-0-fix/ 当我使用jQuery时,为了保持一致性,我会尽可能地坚持使用它。 实际上,两种解决方案-使用window.load(){}或$(\“ my element \”)。load(){}都对我来说效果很好,因此我希望这对您或其他任何发现此问题的人都有帮助。     
请检查您在DOM准备就绪时是否尝试获取高度,也就是说在window.onload函数中。 如果您的div元素为空且height为auto,则它将返回0。因此,在加载整页之前,您的div可能为空。 例如:我想记住.elementDiv div的初始高度:
var initialHeight = [];
window.onload = function() {
$(\'.elementDiv\').each(function(i) {
  initialHeight[i]=$(this).height();
  });
  // then use it
  }
当不在onload函数中时,我得到的高度都是0。 我希望这是原因,因为我什么也看不到。     
我已经找到一种解决方法,可以进行轻松过渡和轻松过渡。此解决方法需要元素的“跳转”:
var elementselector = \"#elementtoscroll\";
$(elementselector ).css(\"height\", \"auto\");
var elemheight = $(elementselector).css(\"height\");
$(elementselector).css(\"height\", \"0\");
$(elementselector).css(\"height\", elemheight);
通过这种方式,javascript达到了高度-我知道这不是一个美丽的方法,但是它可以工作。例如,这对于缓解效果很重要。 编辑:应该说,这仅可能与CSS3和CSS样式类似:
#panel{
    background-color: #FF00FF;
    display: block;
    height: 0px;
    transition: all 300ms ease-in-out;
    overflow: hidden;
}
    
您可以尝试Window.getComputedStyle(); 它将返回一组计算出的样式(如果没有定义样式属性,例如auto)
var elem1 = document.getElementById(\"elemId\");
var style = window.getComputedStyle(elem1);
然后你可以说
var computedHeight = style.height;
有关更多信息:https://developer.mozilla.org/zh-CN/docs/Web/API/Window/getComputedStyle     
我认为offsetHeight或clientHeight或scrollHeight可以解决它。例如:
img.parent()[0].offsetHeight
要么
img.parent()[0].scrollHeight
这三种方法的不同之处可以在这里看到: http://jsfiddle.net/shibualexis/yVhgM/3/ 什么是offsetHeight,clientHeight,scrollHeight?     

要回复问题请先登录注册