transition
只适用于明确的值,auto这种无法实现过度var()
函数可以代替元素中任何属性中的值的任何部分HTML部分
<div class="trigger">
Hover me to see a height transition.
<div class="el">content</div>
</div>
CSS部分
.el {
transition: max-height 0.5s;
overflow: hidden;
max-height: 0;
}
.trigger:hover > .el {
max-height: var(--max-height);
}
JavaScript部分
var el = document.querySelector('.el')
var height = el.scrollHeight
el.style.setProperty('--max-height', height + 'px')