不固定高度的手风琴动画效果(需使用js计算盒子大小,transform: translateY()方法解决)

文章讨论了使用`max-height`方案遇到的问题,以及如何通过`transform:translateY()`实现元素高度的动态变化。作者求助于一个代码实例,展示了如何在`isOpen`状态切换时控制`box`的高度,尽管存在高度溢出问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

尝试了下max-height方案,没搞明白。有大佬可以指个代码链接给我吗?

省流:transform: translateY()

使用场景及其有限,因为box高度在-100%的情况下还是会占位置!!!!

<template>
	<div class="box" :class="isOpen ? 'open' : 'close'"  style="height: 200px;"></div>
</template>
<style scoped>
.box{
	transform: translateY(-100%);
}
.open{
	animation: closeToOpen 0.5s;
	animation-fill-mode: forwards;
}
.close{
	animation: openToClose 0.5s;
	animation-fill-mode: forwards;
}
@keyframes closeToOpen
{
    0%   {transform: translateY(-100%);}
    100% {transform: translateY(0);}
}
@keyframes openToClose
{
    0%   {transform: translateY(0);}
    100% {transform: translateY(-100%);}
}
</style>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值