vue动画—通过钩子函数实现半场动画操作


Posted in Javascript onAugust 09, 2020

注意:

1.起始位置设置了一个(0,0)在第一遍执行时,是没有作用的。在一次入场动画执行完成之后,在最终位置停下来并不在起始位置,通过这里的位置的设置可以将入场动画结束时的位置调到这里

2.理解enter()函数的el的指代对象和done()指代的回调函数

3.理解this.show = !this.show,这句话有两个作用。一是:控制显示和隐藏,二是:false —> true为半场动画,true—>false又是为另半场动画。这样就能完成一直循环执行半场动画的效果了。

HTML代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <script src="../lib/vue.js"></script>
</head>
<style>
 .ball{
  margin: 50px 50px;
  width: 15px;
  height: 15px;
  border-radius: 50px;
  background-color: brown;
 }
</style>
<body>
  <div id="app">
   <input type="button" value="跳进篮子里" v-on:click="show=!show">
   
   <transition
    v-on:before-enter="bEnter"
    v-on:enter="enter"
    v-on:after-enter="aEnter">
    <div class="ball" v-show="show"></div>
   </transition>
  </div>
 
  <script>
   var vm = new Vue({
    el:'#app', 
    data:{
     show:false
    },
    methods:{
     bEnter(el){
      el.style.transform = "translate(0,0)"
      //表示动画入场之前,坐标表示位置是在起始位置不动 
      //在一次入场动画执行完成之后,在最终位置停下来并不在起始位置,通过这里的位置的设置可以将入场动画结束时的位置调到这里 
     },
     enter(el,done){
      el.offsetTop;
      //必须要写一下offsetTop,offsetWeith等四种中的其中一种,强制刷新动画
      el.style.transform = "translate(200px,450px)";
      el.style.transition = "all 2s ease";
      
      done()
      //done是enter方法的原生的引用函数名,这里表示是回调函数,也就是接下来执行的操作aEnter(),消灭延迟效果。 
     },
     aEnter(el){
      this.show = !this.show;
     }
    }
    //这里的el代表,将要执行半场动画的对象,是第一个原生的参数,跟自定义指令的el作用是一样的 
   });
  </script>
</body>
</html>

效果:

vue动画—通过钩子函数实现半场动画操作

补充知识:vue动画只有离场动画,进场动画不生效

存在问题的图:(只有离场动画,进场动画不生效)

vue动画—通过钩子函数实现半场动画操作

解决之后效果图:

vue动画—通过钩子函数实现半场动画操作

解决办法:

在transition标签中加入appear属性

<template>
 <transition mode="out-in" appear>
  <div class="singer-detail">
  </div>
 </transition>
</template>

以上这篇vue动画—通过钩子函数实现半场动画操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
北京奥运官方网站幻灯切换效果flash版打包下载
Jan 30 Javascript
动态载入/删除/更新外部 JavaScript/Css 文件的代码
Jul 03 Javascript
Iframe自适应高度绝对好使的代码 兼容IE,遨游,火狐
Jan 27 Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
Sep 14 Javascript
将页面table内容与样式另存成excel文件的方法
Aug 05 Javascript
jQuery实现的简单拖拽功能示例
Sep 13 Javascript
Angular.js中用ng-repeat-start实现自定义显示
Oct 18 Javascript
浅谈Node.js:Buffer模块
Dec 05 Javascript
JavaScript中七种流行的开源机器学习框架
Oct 11 Javascript
vue微信分享到朋友圈 vue微信发送给好友
Nov 28 Javascript
js实现页面多个日期时间倒计时效果
Jun 20 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
Dec 20 jQuery
js利用iframe实现选项卡效果
Aug 09 #Javascript
解决vue 退出动画无效的问题
Aug 09 #Javascript
在vue中使用console.log无效的解决
Aug 09 #Javascript
VUE中V-IF条件判断改变元素的样式操作
Aug 09 #Javascript
Vue 样式切换及三元判断样式关联操作
Aug 09 #Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
Aug 08 #Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
Aug 08 #Javascript
You might like
javascript 兼容鼠标滚轮事件
2009/04/07 Javascript
JS 事件绑定函数代码
2010/04/28 Javascript
ko knockoutjs动态属性绑定技巧应用
2012/11/14 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
2013/12/10 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
2016/08/11 Javascript
js编写的treeview使用方法
2016/11/11 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
2016/11/18 Javascript
前端开发必知的15个jQuery小技巧
2017/01/22 Javascript
基于hover的用法实例(推荐)
2017/07/04 Javascript
使用JavaScript开发跨平台的桌面应用详解
2017/07/27 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
Vue表单控件绑定图文详解
2019/02/11 Javascript
vue的注意规范之v-if 与 v-for 一起使用教程
2019/08/04 Javascript
layer.prompt使文本框为空的情况下也能点击确定的方法
2019/09/24 Javascript
用Python遍历C盘dll文件的方法
2015/05/06 Python
Python 使用with上下文实现计时功能
2018/03/09 Python
python-opencv 将连续图片写成视频格式的方法
2019/01/08 Python
Python Pandas 箱线图的实现
2019/07/23 Python
python3实现的zip格式压缩文件夹操作示例
2019/08/17 Python
pandas 缺失值与空值处理的实现方法
2019/10/12 Python
PyCharm如何导入python项目的方法
2020/02/06 Python
css3 transform 3d 使用css3创建动态3d立方体(html5实践)
2013/01/06 HTML / CSS
奢华时尚的独特视角:La Garçonne
2018/06/07 全球购物
命名空间(namespace)和程序集(Assembly)有什么区别
2015/09/25 面试题
智乐游戏测试笔试题
2014/05/21 面试题
财务会计毕业生个人求职信
2014/02/03 职场文书
银行领导班子四风对照检查材料
2014/09/27 职场文书
就业协议书范本
2014/10/08 职场文书
2014年招商工作总结
2014/11/22 职场文书
文体活动总结
2015/02/04 职场文书
大学生预备党员自我评价
2015/03/04 职场文书
刑事辩护词范文
2015/05/21 职场文书
MySQL 百万级数据的4种查询优化方式
2021/06/07 MySQL
动视暴雪取消疫苗禁令 让所有员工返回线下工作
2022/04/03 其他游戏