vue3 transition 隐藏过渡,折叠过渡效果实现

隐藏过渡

可以直接使用官方给出的例子

// 隐藏过渡效果
.fade-enter-active,
.fade-leave-active {
    transition: opacity 0.5s ease;
}

.fade-enter-from,
.fade-leave-to {
    opacity: 0;
}

折叠面板效果过渡

折叠需要考虑很多方面的问题,

  • 例如子元素是否有 padding 或者 margin, 如果有将会造成抖动或者闪烁,需自行排除。
  • 如果带有 v-show v-if 的元素没有高度,则不能使用,所以必须动态添加高度样式, 在点击的时候添加,防止某些异步组件高度计算错误
<button @click="()=>{
	// 动态添加高度,只设置一次
	if(cardBody.style.height)cardBody.style.height = cardBody.offsetHeight + 'px';
	// 控制元素显示
	collapse  = !collapse 
}"></button>

<transition name="collapse">
	<template v-if="xxx">
		hello world
	</template>
</transition>

<script setup lang="ts">
import xxx
const cardBody = ref<any>(null);
const collapse = ref<boolean>(false)
</script>

<style>
// 折叠加隐藏过渡效果
.collapse-enter-active,
.collapse-leave-active {
    transition: all 0.5s;
    // 防止折叠时元素溢出
    overflow: hidden;
}

.collapse-enter-from,
.collapse-leave-to {
    height: 0px !important;
    opacity: 0;
}
</style>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vuetransition组件可以实现元素的显示和隐藏过渡效果。你可以通过为transition组件添加name属性来设置过渡名称,然后根据该名称创建六个类来控制过渡效果。例如,name="demo"表示显示的过程(由隐藏的状态变成显示的状态),.demo-enter、.demo-enter-to、.demo-enter-active表示隐藏的过程(由显示状态变成隐藏的状态),.demo-leave、.demo-leave-to、.demo-leave-active。transition组件只是添加了这六个类,具体的过渡效果需要通过CSS过渡或动画来实现。如果你想实现入场过渡效果,可以为transition组件添加appear属性,这样当元素加载时会执行动画。下面是一个使用transition组件实现显示隐藏过渡效果的示例代码: ```html <div id="app"> <button @click="toggle">切换</button> <!-- 通过name定义名称 --> <!-- 我们通过为transition组件添加appear属性,实现入场过渡:当元素加载的时候,执行动画 --> <transition name="demo" appear> <div class="box" v-show="isShow"></div> </transition> </div> ``` 你可以根据自己的需求修改name属性和CSS样式来实现不同的过渡效果。 #### 引用[.reference_title] - *1* [vue3 transition 隐藏过渡折叠过渡效果实现](https://blog.csdn.net/qq_31254489/article/details/121023860)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [vue transition 过渡动画](https://blog.csdn.net/ruantianqing/article/details/112602028)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值