Vue笔记_transition组件(过渡样式)

news2024/11/26 21:47:51

目录

      • transition组件
        • 作用
          • 过渡时机
        • 语法1
        • 语法2
          • 使用-animation侦动画
          • 使用-过渡动画
        • 总结

transition组件

作用

transition组件的作用是 给 单个 元素/组件 添加过渡效果;
transition-group组件的作用是给 多个 元素/组件 添加过渡效果;

过渡时机
  • vue只有在插入、更新、销毁DOM元素时,才会触发过渡效果
  • 所以只有 标签/组件 在被插入、更新、销毁的时候,封装成transition组件才会出现过渡效果。

语法1

  • 简单元素
    <transition>
      <div v-if="isShow">toggled content</div>
    </transition>
    
  • 动态组件
    <transition>
      <component :is="view"></component>
    </transition>
    
    • is属性的值为要渲染的组件的组件名;
    • component标签在渲染时会渲染为通过is属性传入的组件,上面代码本质是
      <transition>
        <view> </view>
      </transition>
      
    • 因此若是要给组件传值,仍然可以使用 属性名=属性值 的形式进行传递
        <transition>
          <component is='组件名' 属性名=‘属性值’ @方法名=‘方法值’></component>
        </transition>
      

注:transition只会把过渡效果应用到其包裹的内容上,而不会额外渲染 DOM 元素(类似template)。

语法2

当 标签/组件 使用 transition包裹后,组件的挂载/卸载将会通过以下6个类名以供我们控制过渡效果

  • v-enter-active
  • v-leave-active
  • v-enter
  • v-enter-to
  • v-leave
  • v-leave-to

但是若是页面中存在多个transition并且他们的动画效果不一致时,可以通过name属性来进行单独设置

<transition name='xxx'></transition>

如上将name属性设置为xxx,那该组件内包裹的元素的动画效果将会通过以下6个类名进行控制

  • xxx-enter-active
  • xxx-leave-active
  • xxx-enter
  • xxx-enter-to
  • xxx-leave
  • xxx-leave-to

这六个类名的作用分别是什么? 将会在 使用 中进行具体说明。

使用-animation侦动画
<template>
  <div>
    <button @click="isShow = !isShow">点我改变元素状态</button>
    <transition appear name="move">
      <div v-if="isShow" class="box">transition包裹的标签</div>
    </transition>
  </div>
</template>
<script>
export default{
  data(){
    return{
      isShow:true
    }
  }
}
</script>
<style lang="less" scoped>
@keyframes donghua {
  from{
    transform:  translateX(-100px);
  }
  to{
    transform: translateX(0);
  }
}
//  元素渲染时:在组件“进入”页面时会自动将该类名添加在被transition组件包裹的标签上
.move-enter-active{
  animation: donghua 0.5s linear;
}
// 元素销毁时:在组件“离开”页面时会自动将该类名添加在被transition组件包裹的标签上
.move-leave-active{
  animation: donghua 0.5s linear reverse;
}
.box{
  text-align: center;
  height: 50px;
  line-height: 50px;
  background: pink;
  color: #fff;
}
</style>

</style>

  • 上述代码的动画效果可以复制打开页面观看
  • 在这里插入图片描述
  • xxx-enter-active表示元素进入过程中所执行的样式(动画);
  • xxx-leave-active表示元素离开过程中所执行的样式(动画);
使用-过渡动画
<template>
  <div>
    <button @click="isShow = !isShow">点我改变元素状态</button>
    <transition appear name="move">
      <div v-if="isShow" class="box">transition包裹的标签</div>
    </transition>
  </div>
</template>
<script>
export default{
  data(){
    return{
      isShow:true
    }
  }
}
</script>
<style lang="less" scoped>

// 元素进入过程中的css动画,元素离开过程中的css动画
.move-enter-active,.move-leave-active{
  transition: all 0.3s linear;
}

// 元素进入之前的样式, 元素离开之后的样式
.move-enter,.move-leave-to{
  transform: scale(0);
  opacity: 0;
}
// 元素进入之后的样式,元素离开之前的样式
.move-enter-to, .move-leave{
  transform: scale(1);
  opacity: 0;
}


.box{
  text-align: center;
  height: 50px;
  line-height: 50px;
  background: pink;
  color: #fff;
}
</style>

  • xxx-enter表示元素进入之前的样式
  • xxx-enter-to表示元素进入之后的样式
  • xxx-leave表示元素离开之前的样式
  • xxx-leave-to表示元素离开之后的样式
  • 通过上述类名设置样式后还需要添加一个过渡效果这个过渡效果还是秉承之前的原则->谁过渡给谁加,也可通过xxx-enter-active与xxx-leave-active进行添加;

总结

  • 本质:vue就是在监听组件的插入、更新、销毁,然后给其加上对应的类名。
  • 6个类
    • [1] xxx-enter-active表示元素进入过程中所执行的样式(动画)
      • 在组件“进入”页面时会自动将该类名添加在被transition组件包裹的标签上
      • 渲染完毕移除该类名;
    • [2]xxx-leave-active表示元素离开过程中所执行的样式(动画)
      • 在组件“离开”页面时会自动将该类名添加在被transition组件包裹的标签上至销毁完毕;
    • [3]xxx-enter表示元素进入之前的样式
      • 在组件“进入”页面时将该类名添加在被transition组件包裹的标签上
      • 进入后将该类名移除(只是一瞬间不易观察)
    • [4] xxx-enter-to表示元素进入之后的样式
      • 在组件“进入”页面后将该类名添加在被transition组件包裹的标签上
      • 渲染完毕移除该类名;
    • [5] xxx-leave表示元素离开之前的样式
      • 在组件“离开”页面时会自动将该类名添加在被transition组件包裹的标签上;
      • 销毁过程中移除(只是一瞬间不易观察)
    • [6]xxx-leave-to表示元素离开之后的样式
      • 在组件“离开”页面后会自动将该类名添加在被transition组件包裹的标签上至销毁完毕;
    • 若是配合帧动画使用-> 仅需[1]、[2]即可;
    • 若是配置过渡动画使用 -> 需要6个类搭配使用;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/50115.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【pen200-lab】10.11.1.13

pen200-lab 学习笔记 【pen200-lab】10.11.1.13 &#x1f525;系列专栏&#xff1a;pen200-lab &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4c6;首发时间&#xff1a;&#x1f334;2022年11月30日&#x1f334; &#x1f36d;作…

turtlebot2利用turtlebot_exploration_3d进行自主建图

安装octomap_ros和rviz插件 sudo apt-get install ros-indigo-octomap*源码安装&#xff1a;turtlebot_exploration_3d(本机为Ubuntu16对应的ros版本为kinetic&#xff0c;但是无对应的版本&#xff0c;用的是ubuntu14的indigo&#xff0c;版本向前兼容&#xff0c;故可以运行&…

AXWWriter兼容的Word处理元素

AXWWriter兼容的Word处理元素 AXWWriter是一个与MS Word兼容的Word处理元素。该部件不需要设置任何其他库或软件。 AXWWriter使用DOCXReadWrite一起工作,DOCXReadWriter也包含在内。有关其他属性,请查看DOCXReadWrite。AXWWriter不难使用。如果您了解DOCXReadWrite,那么您已…

岩藻多糖-聚已内酯 Fucoidan-PCL 聚已内酯-PEG-岩藻多糖

岩藻多糖-聚已内酯 Fucoidan-PCL 聚已内酯-PEG-岩藻多糖 中文名称&#xff1a;岩藻多糖-聚已内酯 英文名称&#xff1a;Fucoidan-PCL 别称&#xff1a;PCL修饰岩藻多糖&#xff0c;PCL-岩藻多糖 聚己内酯&#xff08;Polycaprolactone&#xff0c;PCL&#xff0c;CAS号…

第4部分 RIP

动态路由协议包括距离向量路由协议和链路状态路由协议。RIP&#xff08;Routing Information Protocol&#xff0c;路由信息协议&#xff09;是使用最广泛的距离微向量路由协议。RIP 是为小型网络环境设计的&#xff0c;国为这类协议是路由学习及路由更新将产生较大的流量&…

一文看懂MySQL的行锁

MySQL的全局锁和表锁可以看这篇文章&#xff1a;MySQL的全局锁和表锁 进入正文 行锁 行锁是由各个存储引擎自己实现的&#xff0c;并不是所有的引擎都支持行锁。 MyISAM引擎就不支持行锁&#xff0c;同一时刻一张表只能有一个更新在执行。 现在说InnoDB的行锁&#xff0c;行…

[附源码]计算机毕业设计springboot家庭医生签约服务管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

你在终端启动的进程,最后都是什么下场?(上)

你在终端启动的进程&#xff0c;最后都是什么下场&#xff1f;&#xff08;上&#xff09; 前言 在本篇文章当中&#xff0c;主要给大家介绍我们在终端启动的进程都是怎么结束的&#xff0c;在我们登录终端和退出终端都发生了什么&#xff1f; 基本介绍 首先我们需要了解的…

从Android系统启动→app启动→activity启动和渲染的整个流程

引言 本文讲解从开机到app显示画面的流程&#xff0c;但不分析源码&#xff0c;如果想阅读源码请到参考文章中查阅。 本文把这段流程分为三部分&#xff1a; 从开机到显示应用列表从点击应用图标到Activity创建成功从Activity创建成功到显示画面 从开机到显示应用列表 先看…

Java-CC

漏洞原理 TransformedMap这个类的decorate函数可以将一个普通的Map转换为一个TransformedMap&#xff0c;其第2、3参数分别对应当key改变和value改变时需要做的操作。所以此时如果修改其中的任意key或value&#xff0c;就会触发我们预先定义好的某些操作来对Map进行处理&#…

pytorch初学笔记(十四):损失函数

目录 一、损失函数 1.1 L1损失函数 1.1.1 简介 1.1.2 参数设定 1.1.3 代码实现 1.2 MSE损失函数&#xff08;平方和&#xff09; 1.2.1 简介 1.2.2 参数介绍 1.2.3 代码实现 1.3 损失函数的作用 二、在神经网络中使用loss function 2.1 使用交叉熵损失函数 2.2 …

【软件测试】资深测试聊一聊,测试架构师是怎么样的,做一名成功的测试工程师......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 测试架构师 测试架…

利尔达5G模组NE16U-CN通过华为OpenLab基于R16标准的认证测试

近日&#xff0c;利尔达5G R16模组NE16U-CN 率先顺利通过了华为OpenLab的认证测试&#xff0c;成为首批基于展锐V516芯片平台通过华为认证测试的5G模组&#xff0c;实现了基于3GPP R16协议版本的业务验证。 这表明&#xff0c;利尔达NE16U-CN模组已支持3GPP R16所具有的5G LAN、…

Overview of Computer Graphics

ContentsWhat is Computer Graphics?Why study Computer Graphics?ApplicationsFundamental Intellectual ChallengesTechnical ChallengesCourse TopicsRasterization (光栅化)Curves and Meshes (曲线和曲面)Ray Tracing (光线追踪)Animation / Simulation (动画 / 模拟)Re…

ANACONDA的进阶理解和思考

0. 继续深入了解anaconda 0.1 Anaconda 是 Python 的一个开源发行版本 里面集成了很多关于 python 科学计算的第三方库&#xff0c;主要面向科学计算且安装方便&#xff0c;而 python 是一个编译器 如果不使用 anaconda&#xff0c;那么安装库的时候&#xff0c;库的依赖安装起…

力扣LeetCode算法题 第6题-Z 字形变换

要求&#xff1a; 一开始看到题目&#xff0c;第一想到的思路&#xff0c;就被题目要求的思路给带偏了。 内容是Z字型输出内容 就一直想着把字符串输出成上面这种格式 总是想着把字符串放入到二维数组中进行展示。 这样一来思路就受到了限制。 一直使用先写入数组中。 //将…

直播邀请函 | 第12届亚洲知识产权营商论坛:共建创新价值 开拓崭新领域

由香港特别行政区政府、香港贸易发展局及香港设计中心共同举办的亚洲知识产权营商论坛&#xff0c;每年为世界各地知识产权业界专家、商界领袖提供一个理想平台&#xff0c;共同探讨亚洲知识产权市场的最新发展&#xff0c;发掘更多商机。 去年&#xff0c;论坛共邀请70余位国…

使用HBuilder X开发Vue3+node+element-plus(一)

开发Vue3有很多的工具&#xff0c;比如VSCode&#xff0c;它也非常的好用&#xff0c;本文主要使用HBuilder X开发。 环境3个&#xff1a; Windows10 Node安装 1.打开官网&#xff0c;选择一个版本&#xff0c;进行安装 Node.js 2.选择路径&#xff0c;下一步就行了 3. 输…

【深度学习】torch.argmax()函数讲解 | pytorch

文章目录前言一、两个维度的张量使用torch.argmax()函数二、三个维度的张量使用torch.argmax()函数前言 这篇博客也是属于看了好久一直没写&#xff0c;终于写了。 一、两个维度的张量使用torch.argmax()函数 我们直接先举一个例子吧&#xff0c;我们随机生成一个2X3的张量&…

[附源码]SSM计算机毕业设计亿上汽车在线销售管理系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…