[Vue][transition]Vue中实现类似JQuery中slideUp slideDown的滑动显示隐藏过渡动画效果

Vue过渡实现 类似 jQuery slideUp slideDown显示隐藏效果

  • jQuery流行库的显示隐藏等等过渡动画很美好,但是我们的Vue中并不是很建议使用jQuery,在不使用jQuery的情况下,有什么方法能够实现呢?
  • 如何使用 Vue过渡 与 css 实现类似jQueryslide系列滑动显示隐藏动画?

为了确保这是您需要的动画,先上动图和展示

在这里插入图片描述

大小受限 清晰度不够

静态收缩前

在这里插入图片描述

收缩后

在这里插入图片描述

  1. 使用 <transition> 标签将要执行过渡的DOM包裹起来
  2. 使用 v-show 指令绑定 <transition> 中的根元素,这里我用的是这种方法,点击按钮后执行 this.strWindow = !this.strWindow实现v-show的显示隐藏
<transition name="fade">
            <div class="userdata" v-show="strWindow">
			
			<!--以下DOM结构为我项目中的结构,只作为例子使用,直接复制会因为缺少数据和样式而报错-->
                <div class="view" @click="goOverview('chat')">
                    <p class="num">{{userdata.chat}}</p>
                    <p class="name">沟通中</p>
                </div>
                <div class="view" @click="goOverview('interview')">
                    <p class="num">{{userdata.interview}}</p>
                    <p class="name">待面试</p>
                </div>
                <div class="view" @click="goOverview('offer')">
                    <p class="num">{{userdata.offer}}</p>
                    <p class="name">录用</p>
                </div>
                <div class="view" @click="goOverview('star')">
                    <p class="num">{{userdata.star}}</p>
                    <p class="name">收藏</p>
                </div>
				
            </div>
</transition>
  1. 撰写css样式
/* 设置过渡,只过渡maxheight */
.fade-leave-active ,.fade-enter-active{
    transition:max-height 0.6s;
}
/* 使其动作enter后和leave前,高度为0 */
.fade-enter, .fade-leave-to {
    max-height:0px;
}
/* 使其enter前和leave后,高度为100px */
.fade-enter-to, .fade-leave{
    max-height:100px;
}
  1. 测试效果
  • 如果下方有DOM元素,则需要给下方的DOM元素进行相对定位

position: relative;

  • 上方的DOM元素请设置z-index属性大于本过渡元素,以免出现滑动时向上覆盖的情况

z-index:99;

  • 上下方向的paddingmargin也许会影响过渡效果,请根据实际需要进行修改

点赞转发收藏支持 感谢

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
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 ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值