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 相关文章推荐
jscript之Open an Excel Spreadsheet
Jun 13 Javascript
另一个javascript小测验(代码集合)
Jul 27 Javascript
Node.js中使用socket创建私聊和公聊聊天室
Nov 19 Javascript
原生js页面滚动延迟加载图片
Dec 20 Javascript
JQuery 在文档中查找指定name的元素并移除的实现方法
May 19 Javascript
js和jQuery设置Opacity半透明 兼容IE6
May 24 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
Aug 25 Javascript
实例解析Array和String方法
Dec 14 Javascript
js代码延迟一定时间后执行一个函数的实例
Feb 15 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
Sep 30 Javascript
layui之select的option叠加问题的解决方法
Mar 08 Javascript
使用layui+ajax实现简单的菜单权限管理及排序的方法
Sep 10 Javascript
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
正义联盟的终局之战《天启星战争》将成为DC动画宇宙的最后一部
2020/04/09 欧美动漫
PHP 木马攻击防御技巧
2009/06/13 PHP
PHP递归遍历指定文件夹内的文件实现方法
2016/11/15 PHP
PHP去除字符串最后一个字符的三种方法实例
2017/03/01 PHP
通用javascript脚本函数库 方便开发
2009/10/13 Javascript
javascript使用中为什么10..toString()正常而10.toString()出错呢
2013/01/11 Javascript
jQuery多项选项卡的实现思路附样式及代码
2014/06/03 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
jquery合并表格中相同文本的相邻单元格
2015/07/17 Javascript
Javascript的表单验证长度
2016/03/16 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
2016/05/07 Javascript
JS实现的自定义水平滚动字体插件完整实例
2016/06/17 Javascript
JavaScript实现修改伪类样式
2017/11/27 Javascript
微信小程序-可移动菜单的实现过程详解
2019/06/24 Javascript
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[41:17]VG vs Optic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python机器学习之决策树算法
2017/12/22 Python
Python字符串格式化%s%d%f详解
2018/02/02 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
2019/06/19 Python
Python 从attribute到property详解
2020/03/05 Python
python数据抓取3种方法总结
2021/02/07 Python
解决pytorch 数据类型报错的问题
2021/03/03 Python
KIKO MILANO英国官网:意大利知名化妆品和护肤品品牌
2017/09/25 全球购物
迪梵英国官方网站:Darphin英国
2017/12/06 全球购物
英国经济型酒店品牌:Travelodge
2019/12/17 全球购物
荷叶圆圆教学反思
2014/02/01 职场文书
工厂门卫岗位职责范本
2014/04/04 职场文书
奥巴马胜选演讲稿
2014/05/15 职场文书
单位一把手群众路线四风问题整改措施
2014/09/25 职场文书
县委班子四风对照检查材料思想汇报
2014/09/29 职场文书
2014城乡环境综合治理工作总结
2014/12/19 职场文书
2015年大学宣传部工作总结
2015/05/26 职场文书
2015年党小组工作总结
2015/05/26 职场文书
初中体育教学随笔
2015/08/15 职场文书
用python开发一款操作MySQL的小工具
2021/05/12 Python
电脑开机弹出documents文件夹怎么回事?弹出documents文件夹解决方法
2022/04/08 数码科技