【Vue.js 入门与实战】--动画-小球动画flag标识符的作用分析

简介: 一、实现小球动画复习二、成功范例三、失败案例分析

动画-小球动画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。这就代表每次只执行前半场动画。

 



相关文章
|
1月前
|
JavaScript 前端开发
如何使用时间切片来优化JavaScript动画的性能?
如何使用时间切片来优化JavaScript动画的性能?
|
3天前
|
JavaScript 前端开发
【JavaScript】——JS基础入门常见操作(大量举例)
JS引入方式,JS基础语法,JS增删查改,JS函数,JS对象
|
23天前
Next.js 实战 (二):搭建 Layouts 基础排版布局
本文介绍了作者在Next.js v15.x版本发布后,对一个旧项目的重构过程。文章详细说明了项目开发规范配置、UI组件库选择(最终选择了Ant-Design)、以及使用Ant Design的Layout组件实现中后台布局的方法。文末展示了布局的初步效果,并提供了GitHub仓库链接供读者参考学习。
Next.js 实战 (二):搭建 Layouts 基础排版布局
|
17天前
|
存储 网络架构
Next.js 实战 (四):i18n 国际化的最优方案实践
这篇文章介绍了Next.js国际化方案,作者对比了网上常见的方案并提出了自己的需求:不破坏应用程序的目录结构和路由。文章推荐使用next-intl库来实现国际化,并提供了详细的安装步骤和代码示例。作者实现了国际化切换时不改变路由,并把当前语言的key存储到浏览器cookie中,使得刷新浏览器后语言不会失效。最后,文章总结了这种国际化方案的优势,并提供Github仓库链接供读者参考。
|
18天前
Next.js 实战 (三):优雅的实现暗黑主题模式
这篇文章介绍了在Next.js中实现暗黑模式的具体步骤。首先,需要安装next-themes库。然后,在/components/ThemeProvider/index.tsx文件中新增ThemeProvider组件,并在/app/layout.tsx文件中注入该组件。如果想要加入过渡动画,可以修改代码实现主题切换时的动画效果。最后,需要在需要的位置引入ThemeModeButton组件,实现暗黑模式的切换。
|
1月前
|
JavaScript
如何使用内存快照分析工具来分析Node.js应用的内存问题?
需要注意的是,不同的内存快照分析工具可能具有不同的功能和操作方式,在使用时需要根据具体工具的说明和特点进行灵活运用。
44 3
|
1月前
|
JavaScript 前端开发 安全
JavaScript与TypeScript的对比,分析了两者的特性及在实际项目中的应用选择
本文深入探讨了JavaScript与TypeScript的对比,分析了两者的特性及在实际项目中的应用选择。JavaScript以其灵活性和广泛的生态支持著称,而TypeScript通过引入静态类型系统,提高了代码的可靠性和可维护性,特别适合大型项目。文章还讨论了结合使用两种语言的优势,以及如何根据项目需求和技术背景做出最佳选择。
58 4
|
1月前
|
设计模式 前端开发 JavaScript
JavaScript设计模式及其在实战中的应用,涵盖单例、工厂、观察者、装饰器和策略模式
本文深入探讨了JavaScript设计模式及其在实战中的应用,涵盖单例、工厂、观察者、装饰器和策略模式,结合电商网站案例,展示了设计模式如何提升代码的可维护性、扩展性和可读性,强调了其在前端开发中的重要性。
33 2
|
1月前
|
JavaScript 前端开发 API
Vue.js与Angular的优劣分析
Vue.js和Angular都是非常流行的JavaScript框架,它们在构建现代Web应用程序方面各有优劣
|
1月前
|
JavaScript 前端开发
如何在不影响性能的前提下使用JavaScript库来实现复杂的动画效果?
如何在不影响性能的前提下使用JavaScript库来实现复杂的动画效果?