动画-小球动画flag标识符的作用分析|学习笔记

简介: 快速学习动画-小球动画flag标识符的作用分析

开发者学堂课程【Vue.js 入门与实战动画-小球动画flag标识符的作用分析】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/586/detail/8183


动画-小球动画flag标识符的作用分析

目录:

一、实现小球动画复习

二、成功范例

三、失败案例分析

 

一、实现小球动画复习


首先设置一个小球,并为其设置设计

<style>
.ball {
  Width:15px
  Height:15px
  Background-color:red
  Border-radius:50

浏览下,可以看到小球已经被创建:

image.png

接下来我们再给他做一个按钮

<input  type =”button” value =”加入购物车” @click=”flag=!flag”>
<div class =”ball” v-show=”flag”></div>
</div>
<acript>
//创建VUE实例,得到Viewmodel
 Var vm = new Vue {{
el: ‘#app’,
      Data:{
       Flag:false
     },
    Methods:{}
   }};

刷新点击后,即可看到执行效果:

image.png

 

二、成功范例


上面实现了最基本的功能,接下来通过VUE的动画机制,钩子函数实现小球加入购物车的效果,如果想要实现动画的话,第一步需要把小球放到元素当中去

<html lang-"en">
<head>
  <cmeta charset="UTF-8">
<cmeta name="viewport"content="width=device-width,initial-scale=1.0">
<cmeta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</titlo>
  <script src="./lib/vue-2.4.0.js"x/script>
  <style>
  .ball {
    width:15px;
    height: 15px;
    background-color:red;
borde-radius:50%;
     }
</style>
</head>
<body>
  <div id="app">
  <input type="button" value="加入购物车" @click="flag=!flag">
  <div class="ball" v-shiw="fiag"></div>
  </div>
<script>
//创建Vue实例,得到ViewModel
var Vm = new Vue({
el: '#app',
 data: {
  flag: false
},
methods:{}
});
</scrtipt>
 </body>
<div id="app">
<input type="button" value="加入购物车"@click="flag=!flag">
<transition>


这时小球只有从开始位置到结束位置的过渡关系,并没有回去的过程,这个时候就需要使用钩子函数,创造半场动画,这个时候就应该使用如下代码:

@before-enter="beforeEnter"
  @enter="enter"
  @after-enter="afterEnte">
  <div class="ball" v-show="flag">/div>
</transition>
</div>
<script>
 //创建Vue实例,得到 ViewModel
Var vm = new Vue({
el: '#app',
data: {
  flag: false
   },
       methods:{
  beforeEnter(el){
el.style.transtorm = 'translate(0,0)'
  },

此时通过上面的代码,我们定义了小球,启示时的开场位置,以及小球最终去的离场位置。下面的代码,我们设置小球的路径数据,以及过渡属性的数据。

enter(el,done){
  el.offsetWidth
  el.style.transform = 'translate(150px,450px)'
  el.style.transition = 'all’1s ease'
  done()
},
afterEnter(el){
  // this.fiag = !This.flag
  // el.style.opacity = 0.5

以上函数,可以使小球走到最终位置时,为隐藏状态。此时刷新点击,可看到小球成功执行。

 

三、失败范例分析


如果使用如下代码:

el.style.opacity = 0

此时点击也可以隐藏,也可以实现效果。但是第二次点击的时候就没有动画了,失败原因在于:

当前 opacity 设置为0与设置为0.5没有太大区别。都为二次点击时经过1s所有的时长就直接消失。

Vue把一个完整的动画,使用钩子函数,拆分为了两部分,我们使用 flag 标识符,来表示动画的切换。

刚开始,flag = false → true → false,这是,false → true 为上半场函数,true → false 为后半场函数。此时为了不让其自动执行后半场函数,需要对执行结果取非。

This.flag = ! this.flag

上面这句话,有两个功能:

第一个功能是,

控制小球的显示与隐藏

第二个功能是,

直接跳过后半场动画,让flag 动画直接变为 false

当第二次点击按钮的时候,flag = false → true。这就代表每次只执行前半场动画。

相关文章
|
前端开发 Shell API
强大的类excel插件,handsontable的简单应用
强大的类excel插件,handsontable的简单应用
646 1
|
10月前
|
存储 人工智能 云计算
挑战杯专属支持资源|阿里云-AI大模型算力及实验资源丨云工开物
阿里云发起的“云工开物”高校支持计划,助力AI时代人才培养与科研创新。为“挑战杯”参赛选手提供专属算力资源、AI模型平台及学习训练资源,包括300元免费算力券、百炼大模型服务、PAI-ArtLab设计平台等,帮助学生快速掌握AI技能并构建优秀作品,推动产学研融合发展。访问链接领取资源:https://university.aliyun.com/action/tiaozhanbei。
|
11月前
|
机器学习/深度学习 数据采集 人工智能
人工智能浪潮下,解锁“人工智能认证技能”的新路径
在人工智能迅猛发展的今天,AI已深刻融入工作与生活,重塑社会运行规则。从智能助手到自动驾驶,AI技术广泛应用,催生了对专业人才的庞大需求。然而,面对复杂的信息,如何系统学习并脱颖而出成为关键。“人工智能认证技能”提供了解决方案,帮助个人构建完整知识体系、提升实践能力,并拓展职业发展空间。其中,生成式AI(GAI)认证尤为突出,涵盖核心技能与行业应用,助力职场人士掌握前沿技术,规避风险,实现升职加薪目标。拥抱AI时代,通过权威认证开启职业新篇章,共创科技未来!
人工智能浪潮下,解锁“人工智能认证技能”的新路径
|
人工智能 自然语言处理 算法
人工智能与创意写作:未来文学的新篇章
本文探讨了人工智能在创意写作领域的应用及其对传统文学创作的影响。通过分析AI技术如何辅助作者生成文本、提升创作效率以及开拓新的文学形式,我们揭示了AI与人类作家之间的协作关系,并讨论了这种合作对未来文学作品风格和内容的可能影响。同时,文章也考虑了AI技术在文学创作中可能带来的挑战和伦理问题,为读者提供了关于科技与艺术融合的深入思考。
684 11
|
Ubuntu Linux iOS开发
安装Python
安装 Python 是相对简单的过程,但需要根据不同的操作系统选择合适的方法。同时,合理使用虚拟环境可以更好地管理项目的依赖和环境,提高开发效率。希望这些步骤和注意事项能帮助你顺利安装 Python。
780 155
|
Java 开发者
偏向锁和轻量级锁的适用场景是什么
【10月更文挑战第20天】偏向锁和轻量级锁的适用场景是什么
|
消息中间件 前端开发 Java
java高并发场景RabbitMQ的使用
java高并发场景RabbitMQ的使用
491 0
|
存储 编解码 Python
Python 操作 MP4 文件
Python 操作 MP4 文件
438 0
|
Ubuntu 开发工具 git
在Ubuntu上部署BOA服务器的步骤
部署BOA服务器是一个涉及多个步骤的过程,包括系统更新、安装依赖、下载和编译源代码、配置服务器以及启动和验证。遵循上述步骤,可以在Ubuntu系统上成功部署BOA服务器,为开发和测试提供一个轻量级的Web服务器环境。
619 0
|
人工智能 编解码 Linux
Fooocus 超过 180 种风格的傻瓜式 AI 图片生成工具
Fooocus 超过 180 种风格的傻瓜式 AI 图片生成工具
1130 0