动画-钩子函数实现小球半场动画|学习笔记

简介: 快速学习动画-钩子函数实现小球半场动画

开发者学堂课程【Vue.js 入门与实战动画-钩子函数实现小球半场动画】学习笔记,与课程紧密联系,让用户快速学习知识。

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


动画-钩子函数实现小球半场动画

目录

一、首先需要画出小球

二、添加按钮(模拟加入购物车)

三、添加动画

 

之前已经学过了如何使用钩子函数怎么定义动画,本节主要讲解怎么通过钩子函数模拟小球的半场动画。

代码如下:

 

一、首先需要画出小球


Cleane.  .ball
Width:15px
Height:15px
Border-radius:50%
Background-color:red;
}
</style>
</head>
<body>
<div id=“app”>
<div class=“ball”></div>
</div>

image.png

执行可以看到小球已经画出。

 

二、添加按钮(模拟加入购物车)


<body>
<div id=“app”>
<input type=“button” value=“快到碗里来”@click=“!flag”

image.png


三、添加动画:

<body>
<div id=“app”>
<input type=“button” value=“快到碗里来”@click=“!flag”
<!--1.使用 transition元素把小球包裹起来-->
</transition
@before-enter=“”
@enter=“”
@after-enter=“”>
<div class=“ball”></div>
</div>
<acript>
Vue.directive(’focus’,function(el){})
Var vm=new vue{{
el :“app”,
Data:(
Flag:false
},
Methods:{
//注意:动画钩子函数的第一个参数;el。表示要执行动画的那个DOM元素,是个原生的JS.DOM对象
//大家可以认为,el是通过document.getelement.BYid(’’)方式获取的原生JS.DOM对象
//beforeenter 表示动画入场之前,此时,动画尚未开始,可以在beforeenter中,设置元素开始动画之前的起始样式。
小球在动之前需要有一个启示位置,启示需要通过以下代码实现,代表小球在开始前在0.0位置:
el.style.transform=“transition(0,0)”
},
beforeEnter(el){],
enter(el){}.
//enter表示动画开始之后的样式,这里,可以设置小球完成动画之后的,结束状态。
el.style.transform=“transition(0,0)”
el.style.transform=“transition(150px,450px)”
el.style.transform=“transition all is ease”
此时执行会发现,小球确实动起来,但是没有中间过渡过程。所以在这个之前需要设置El.offsetwidth,代码如下:
El.offsetwidth
//这句话,没有实际作用,但是如果不写,出不来动画效果
el.style.transform=“transition(0,0)”
el.style.transform=“transition(150px,450px)”
el.style.transform=“transition all is ease”
所以,所以通过执行,可以认为 El.offsetwidth 会强制动画刷新,这里 El.offsetwidth 不是必须的,还可以写成 El.offsetheight ,也可以写成 El.offsetleft、 El.offsettop等。只要和 El.offset 相关即可。
Afterenter(el){
//动画完成后,会调用afterenter
//console.log(‘OK’)
This.flag=!this.flag
}};
</script>
执行会发现,消失需要一定的时间,如果不想存在这个时间,可以使用以下代码:
enter(el.done)
Done()
//这里的done。起始就是afterenter这个函数,也就是说:done是一个函数的引用。

当只用 JavaScript 过渡的时候,在 enter 和 leave 中,回调函数 done 是必须的,他们会被同步调用,过渡会立即完成。如果不调用 done ,函数执行时就会出现延迟等情况。

以上,已经完成了小球半场动画的全部学习。

相关文章
|
2月前
Threejs实现动画
这篇文章讲解了如何使用Three.js实现动画效果,并介绍了如何控制动画的时间轴。
74 3
Threejs实现动画
|
1月前
|
前端开发
Filp动画
Filp动画基于First、Last、Inverse、Play四步实现复杂前端动画效果。首先记录元素初始位置,接着记录目标位置,然后使用transform属性将元素逆向平移回初始位置,最后通过移除transform并添加transition属性实现平滑动画效果。这是一种高效解决CSS不支持过渡动画问题的方法。
40 1
|
2月前
|
JavaScript 开发者
HarmonyNext动画大全03-帧动画
HarmonyNext动画大全03-帧动画
29 2
|
2月前
|
JavaScript
ThreeJs实现简单的动画
这篇文章介绍了如何使用Three.js实现简单的动画效果,并提供了利用requestAnimationFrame动态改变模型状态的代码示例。
67 0
ThreeJs实现简单的动画
|
7月前
|
前端开发
使用react实现一个简易的小球动画
使用react实现一个简易的小球动画
70 0
|
前端开发
CSS动画篇之404动画
CSS动画篇之404动画
162 0
|
存储 文件存储 云计算
不瞒了,我们和追光动画有一个《杨戬》!
不瞒了,我们和追光动画有一个《杨戬》!
203 0
|
JavaScript 前端开发
【jQuery动画】停止动画、淡入淡出、自定义动画
动画队列中所有动画都是按照顺序执行的,默认只有当前的一个动画执行完毕,才会执行后面的动画。为此,jQuery提供了stop()方法用于停止动画效果。通过此方法,可以让动画队列后面的动画提前执行。
An动画优化之遮罩层动画
An动画优化之遮罩层动画
285 0
|
JavaScript 前端开发 开发者
动画-钩子函数实现小球半场动画|学习笔记
快速学习动画-钩子函数实现小球半场动画
135 0
动画-钩子函数实现小球半场动画|学习笔记