【Vue3从零开始-第四章】4-1 CSS过渡与动画基础效果

简介: 【Vue3从零开始-第四章】4-1 CSS过渡与动画基础效果

]UWOD(KIB9LJS9~S[T{QHM9.png


前言


前面三章的文章中,我们了解了vue的指令、方法、生命周期函数、组件的定义、组件的通信等。本章的内容主要就是讲解vue里面对CSS动画效果的一个处理,并在后面的章节中用一个实例来带着大家一起学习。


在vue里面对于这种过渡和动画效果是有专门的标签和写法去实现的,但是为了让大家更加深入的了解动画效果,本篇文章主要是根据CSS去讲解一个基础动画的内容。


在后面的文章中,会逐渐深入的去了解vue里面的动画标签,并且会根据标签去做切换效果、列表动画等实例。


动画


在CSS里面会在样式中使用animation来定义动画效果,然后在DOM元素上通过class中的类名和样式匹配,从而实现一个动画效果。


前面的文章中,我们有学过动态样式的内容,可以通过v-bind指令在class或者style上绑定样式数据值来动态显示当前标签的样式内容。


首先我们需要在style中标签中定义动画样式


<style>
    @keyframes laftToRight{
      0% {
        transform: translateX(-100px);
      }
      50% {
        transform: translateX(-50px);
      }
      0% {
        transform: translateX(0px);
      }
    }
    .animation {
      animation: laftToRight 3s;
    }
  </style>
复制代码


然后在组件标签中定义class绑定animate对象,通过animate中的animation来判断是否显示动画效果


<script>
  const app = Vue.createApp({
    data(){
      return {
        animate: {
          animation: true
        }
      }
    },
    template: `
      <div>
        <div :class="animate">Hello World</div>
      </div>
    `
  });
  const vm = app.mount('#root');
</script>


TYN]}UE8DXKC6Y2HCV(EXQJ.png


我们可以在模板中添加一个按钮,通过改变animation的数据值从而控制动画执行效果。


const app = Vue.createApp({
    data(){
      return {
        animate: {
          animation: true
        }
      }
    },
    methods: {
      handleClick(){
        this.animate.animation = !this.animate.animation
      }
    },
    template: `
      <div>
        <div :class="animate">Hello World</div>
        <button @click="handleClick">切换</button>
      </div>
    `
  });
复制代码


$B4QV2W)SNS7$I~3NZ5N6KO.png


通过点击按钮事件,可以看到浏览器控制台中的class标签中的值会改变。


过渡


知道了动画效果的写法之后,只需要简单改造一下样式和事件逻辑就可以写出过渡效果咯~~


首先在style标签中定义transition的样式,做一个背景渐变色的过渡效果


.transition{
  transition: 3s background-color ease;
}
.red{
  background-color: red;
}
.green{
  background-color: green;
}
复制代码


然后在data函数中定义数据值对象,将transition置为true,比如我们需要默认是red,改变之后是green,那么就将对应的class值设为truefalse


data(){
  return {
    animate: {
      transition: true,
      red: true,
      green: false
    }
  }
},
复制代码


最后我们在点击事件的方法中,将redgreen做一个取反的效果,就可以实现背景渐变色了。


methods: {
  handleClick(){
    this.animate.red = !this.animate.red
    this.animate.green = !this.animate.green
  }
},
复制代码


_D1C4(`0(JQIC6VZ[)I]TJ8.png


  • 在浏览器中可以看出渐变色效果已经实现了,而且DOM元素中的class也会随着点击事件修改样式名。


总结


本篇文章主要就是讲解了CSS过渡和动画的基础效果,主要还是通过改变class的样式名来控制效果的显隐,当然也可以把class改成style去实现,有兴趣的朋友可以自己根据以前的内容尝试一下哦~~~

相关文章
|
20天前
|
前端开发
2s 利用 HTML+css动画实现企业官网效果
2s 利用 HTML+css动画实现企业官网效果
|
14天前
|
前端开发 UED 开发者
有趣的CSS - 文字加载动画效果
这个文本加载动画简单而有趣,可以在网站标题、广告标语或者关键信息的展示上吸引用户的注意力。开发者可以根据需要调整动画的持续时间、步骤数,或者光标颜色等,来适应特定的设计需求。使用这种动态元素,增强网站的互动性和用户体验,同时也为网站增添了一抹活泼的风格。
33 5
|
14天前
|
前端开发 JavaScript
|
12天前
|
JavaScript 前端开发 UED
Vue.js动画魔法:解锁流畅过渡,让每一次交互都成为用户心中的小确幸!
【8月更文挑战第30天】在Vue.js中,动画与过渡效果不仅是视觉点缀,更是提升用户体验的关键。通过流畅的动态效果,应用的互动性和吸引力得以增强,从而提高用户满意度和参与度。`&lt;transition&gt;`和`&lt;transition-group&gt;`组件结合CSS过渡,可轻松实现元素的进入、离开及列表变化动画。合理的性能优化,如使用硬件加速,能避免页面卡顿,确保动画既美观又高效。下面是一个简单的淡入淡出效果示例,展示了如何利用Vue.js实现平滑的动画过渡。总之,恰当的动画设计能显著提升应用的用户体验。
29 0
Vue.js动画魔法:解锁流畅过渡,让每一次交互都成为用户心中的小确幸!
|
13天前
|
前端开发 JavaScript API
Vue 3 新特性:在 Composition API 中使用 CSS Modules
Vue 3 新特性:在 Composition API 中使用 CSS Modules
|
13天前
|
JavaScript
Vue3数值动画(NumberAnimation)
该文档介绍了一个基于 Vue 的数值动画组件 `NumberAnimation`,提供了丰富的配置选项,如起始值、目标值、动画时长等,并支持自定义前缀、后缀及样式。通过简单的方法和事件,可以轻松控制动画的播放与停止。
Vue3数值动画(NumberAnimation)
|
20天前
|
前端开发 JavaScript
HTML+CSS如何打造撒花动画效果?3分钟学会,炫酷到爆!
HTML+CSS如何打造撒花动画效果?3分钟学会,炫酷到爆!
|
20天前
|
前端开发
CSS动画霓虹灯闪烁效果
CSS动画霓虹灯闪烁效果
|
20天前
|
前端开发 JavaScript
还在为酷炫css动画背景头疼吗?1分钟解决
还在为酷炫css动画背景头疼吗?1分钟解决
|
20天前
|
前端开发
HTML+CSS动画实现动感3D卡片墙:现代Web设计的视觉盛宴
HTML+CSS动画实现动感3D卡片墙:现代Web设计的视觉盛宴