设置为0时是否可以获得height
元素attr的css值?max-height
我需要这个来知道在点击时要显示多少元素的像素,并且由于每个元素都有不同的高度,它会随着浏览器的大小而变化,我想从 css 文件中获取高度值。
设置为0时是否可以获得height
元素attr的css值?max-height
我需要这个来知道在点击时要显示多少元素的像素,并且由于每个元素都有不同的高度,它会随着浏览器的大小而变化,我想从 css 文件中获取高度值。
如果你有 max-height = 0 通过 scrollHeight 属性,你可以得到一个元素的高度。如果您设置最小重量,但不是高度,它会起作用。
HTML:
<div>
Here you have a normal div
<div id="toggable">
Something hidden is in here, but we can still get the height !
<div class="other-content">
Something else here
</div>
</div>
</div>
JS:
alert(document.getElementById('toggable').scrollHeight)
CSS : #toggable { 最大高度:0; 溢出:隐藏;}
.other-content {
min-height: 100px;
}
演示:https ://jsfiddle.net/asywL84u/2/
参考:https ://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight
我的第一个问题是你为什么要使用max-height: 0;
还有其他可以使用的东西吗?喜欢hide()
show()
哪个用途display: none
我唯一能做的就是删除最大高度 css 获取高度,然后重新应用最大高度:
$('.div').css('max-height', 'none')
console.log($('.div').height())
$('.div').css('max-height', '0')
这应该发生得足够快,以至于您不会看到该元素,但是在删除 with 之前隐藏它可能是明智的max-height
:
$('.div').hide()
$('.div').css('max-height', 'none')
console.log($('.div').height())
$('.div').css('max-height', '0')
$('.div').show()
$('.div').each(function(){
var t=$(this); // Cache jQuery reference
t.css('max-height','none'); // Temporarily override max-height
t.data('height',t.height()); // Store height in data
t.css('max-height',''); // Remove our max-height override
});
alert($('.div').data('height'));
jsfiddle:http: //jsfiddle.net/AqAJc/7/
离开css的最大高度。将高度缓存在变量中。然后再次添加max-height
到 0。
$(function(){
var divHeight = $('.div').height();
$('.div').css('max-height', '0');
alert(divHeight);
});
尝试这个:
document.querySelector("#animated-max-height").style.setProperty("--visible-height", document.querySelector("#get-alway-visible-height").clientHeight + "px");
document.querySelector("#animated-max-height").style.setProperty("--content-height", document.querySelector("#animated-max-height").scrollHeight + "px");
#animated-max-height {
max-height: var(--visible-height);
padding: 0px;
transition: max-height 1s ease-out;
overflow: hidden;
}
#animated-max-height:hover {
max-height: var(--content-height);
}
<div id="animated-max-height">
<div id="get-alway-visible-height">Hover me</div>
<div>Now you see me</div>
</div>