如何获取图像的高度并将其父高度设置为自动
How to get an image's height and set its parent height to auto?
如何在没有jQuery和纯JavaScript的情况下执行以下操作:
我要做的是在图形元素中获取图像的高度,如果图像的高度小于 200 像素,则我希望将其容器(父级)的高度设置为自动。
下面的jQuery方法可以工作,但我想用JavaScript来做到这一点。
在这里看到小提琴。
.HTML
<figure>
<img class="imgH" height="500" width="500" src="/some_img.jpg"/>
</figure>
<figure>
<img class="imgH" height="500" width="500" src="/some_img.jpg"/>
</figure>
<figure>
<img class="imgH" height="500" width="500" src="/some_img.jpg"/>
</figure>
<figure>
<img class="imgH" height="250" width="250" src="/some_img.jpg"/> // This image height is less than 300 pixels.
</figure>
<figure>
<img class="imgH" height="500" width="500" src="/some_img.jpg"/>
</figure>
.CSS
figure {
width: 500px;
height: 500px;
}
JavaScript (jQuery)
$(document).ready(function(){
$(".imgH").each(function(){
if( $(this).height() < 200 ) {
$(this).parent().height( "auto" );
}
});
});
window.onload = function () {
[].forEach.call( document.querySelectorAll('.imgH'), function(node, i) {
if (node.clientHeight < 200) {
node.parentNode.style.height = 'auto';
}
});
}
- document.querySelectorAll('.imgH') - 返回具有类的节点imgH,
- node.clientHeight - 获取图像高度
- node.parentNode.style.height - 将高度设置为父节点,在这种情况下,父节点不是图形
德莫: http://jsfiddle.net/6tjn7675/4/
有点令人困惑,但你是说jquery版本可以工作,但你想要它在普通的javascript中吗?
如果是这样,则如下所示:
if( this.offsetHeight< 200 ) {
var container = this.parentNode;
container.style.height = "auto";
}
是等效语句。
尝试这样的事情:
.HTML
<div class="image-container">
/* image goes here */
</div>
jQuery
$('.image-container').each(function() {
if ($(this).find('img').length < 300 ) {
$(this).css({'height' 'auto'});
}
});
据我所知:
- 您可以使用
document.querySelector
来获取所有映像节点。 -
naturalHeight
和naturalWidth
属性将为您提供计算出的图像的高度和宽度。 - 图像节点
parentNode
属性将获取父节点。应用所需的样式,您应该完成。
编辑:刚刚看到戴夫沃克的回答。naturalWidth 和 naturalHeight 将为您提供图像的原始高度和宽度。要获取计算/显示的高度和宽度,您必须使用 offsetHeight 和 offsetWidth。
相关文章:
- 将“潜水高度”设置为“另一潜水高度”
- 如何将自动高度设置为svg元素
- 匹配最高选项卡的高度 - 设置幻灯片高度
- 将文档高度设置为负 100px
- 如何将宽度和高度设置为可拖动图像
- 如何将每个 td 元素的高度设置为其宽度
- 高度设置为“自动”不适用于 JS 动画
- 如何获取图像的高度并将其父高度设置为自动
- 当高度设置为 100% 时,SWF 无法填充窗口
- 根据 jQuery 中多个实例上的另一个元素高度设置高度
- 将元素高度设置为等于主体高度减去 170px
- 在JavaScript中将宽度和高度设置为百分比
- Javascript/jQuery:当最大高度设置为0时获取高度
- 将facebook画布应用程序的高度设置为等于facebook侧边栏的高度
- 如何在页面加载时将剑道网格高度设置为固定值
- 使用jQuery展开DIV时,将高度设置为auto
- 如何将嵌套的DIV高度设置为与容器相同
- 是否可以将夏季注释的角度高度设置为父高度
- 如何将标签高度设置为内容高度
- js将画布宽度/高度设置为0,并且不显示任何内容