当前位置: 首页 > news >正文

vue折叠展开transition动画使用keyframes实现

需求,我正常的菜单功能有隐藏与显示功能,需要增加动画
打开的时候宽度从0到300,关闭的时候,宽度从300到0

<template>  <div id="app">  <button @click="toggleLength">Toggle Length</button>  <transition name="slide">  <div v-if="show" class="box"></div>  </transition>  </div>  
</template>  <script>  
import { ref } from 'vue';  export default {  setup() {  const show = ref(false);  const toggleLength = () => {  show.value = !show.value;  };  return {  show,  toggleLength,  };  },  
};  
</script>  <style>  
#app {  text-align: center;  margin-top: 60px;  
}  button {  padding: 10px 20px;  
}  .box {  width: 300px;  height: 100px;  background-color: red;  transition: width 2s; /* 添加过渡效果 */  
}  /* 使用 @keyframes 定义过渡效果 */  
@keyframes slide {  0% { width: 0px; } /* 打开时宽度从0开始 */  100% { width: 300px; } /* 打开时宽度变为300 */  
}  
@keyframes slideReverse {  0% { width: 300px; } /* 关闭时宽度从300开始 */  100% { width: 0px; } /* 关闭时宽度变为0 */  
}  .slide-enter-active, .slide-leave-active {  animation: slide 2s forwards; /* 应用定义的动画 */  
}  
.slide-leave-active {  animation-direction: reverse; /* 设置动画反向播放 */  
}  
</style>
http://www.lryc.cn/news/287152.html

相关文章:

  • 书生·浦语大模型实战营-学习笔记5
  • 10. Profile
  • YOLO 自己训练一个模型
  • 3.Eureka注册中心
  • 基于springboot+vue的墙绘产品展示交易平台系统(前后端分离)
  • 网络原理-初识(1)
  • 【GitHub项目推荐--人脸识别】【转载】
  • NLP自然语言处理介绍
  • 在线WebOffce在HTML/VUE/Electron纯前端网页编辑Office之打开Word后自动处于修订模式
  • thinkphp+vue+mysql旅游推荐攻略分享网站p0667
  • 华为系统底层是用Java写的吗?和安卓的区别?
  • sql server 修改表前 先判断是否有这个列
  • 解决网站高并发问题的策略?
  • 浙政钉实现埋点(浙政钉-H5小程序应用采集开发手册)
  • 【笔记】Helm-4 最佳实践-3 模板
  • 网络爬虫基本原理的介绍
  • Qt配置OpenCV
  • 单片机I/O口驱动MOS管
  • k8s---helm
  • HarmonyOS(十三)——详解自定义组件的生命周期
  • 设计模式-责任链
  • ubuntu怎么安装docker
  • UE4运用C++和框架开发坦克大战教程笔记(十五)(第46~48集)
  • 《Linux系列》Linux虚拟机,LVM逻辑卷扩容,xfs文件系统扩容
  • springboot(ssm动漫手办商城 动漫周边商系统Java系统
  • 卸载 MariaDB:
  • javaweb总览
  • 树,二叉树及其相关知识
  • NumPy必知必会50例 | 5. 高级数组操作:成为 NumPy 数组的忍者
  • 《WebKit 技术内幕》学习之五(3): HTML解释器和DOM 模型