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 相关文章推荐
jQuery结合PHP+MySQL实现二级联动下拉列表[实例]
Nov 15 Javascript
实例分析js和C#中使用正则表达式匹配a标签
Nov 26 Javascript
在JavaScript中使用对数Math.log()方法的教程
Jun 15 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(上)
Oct 28 Javascript
跟我学习javascript的prototype原型和原型链
Nov 18 Javascript
Angularjs中UI Router的使用方法
May 14 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
Oct 28 Javascript
基于jQuery实现滚动切换效果
Dec 02 Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
Aug 17 Javascript
写给小白看的JavaScript异步
Nov 29 Javascript
countUp.js实现数字滚动效果
Oct 18 Javascript
node.js实现http服务器与浏览器之间的内容缓存操作示例
Feb 11 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
用ODBC的分页显示
2006/10/09 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
php生成RSS订阅的方法
2015/02/13 PHP
php使用GD实现颜色渐变实例
2015/06/02 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
JavaScript 设计模式之组合模式解析
2010/04/09 Javascript
jQuery中[attribute=value]选择器用法实例
2014/12/31 Javascript
JavaScript使用concat连接数组的方法
2015/04/06 Javascript
原生js实现class的添加和删除简单代码
2016/07/12 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
2017/03/24 Javascript
js数组去重的方法总结
2019/01/18 Javascript
Promise扫盲贴
2019/06/24 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
vue全局使用axios的操作
2020/09/08 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
[06:16]DOTA2守卫传承者——职业选手谈心路历程
2015/02/26 DOTA
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
python回溯法实现数组全排列输出实例分析
2015/03/17 Python
查看Python安装路径以及安装包路径小技巧
2015/04/28 Python
python通过post提交数据的方法
2015/05/06 Python
OpenCV-Python实现轮廓检测实例分析
2018/01/05 Python
python如何编写类似nmap的扫描工具
2020/11/06 Python
python 下载文件的多种方法汇总
2020/11/17 Python
python实现学生信息管理系统(精简版)
2020/11/27 Python
RealTek面试题
2016/06/28 面试题
高校学生干部的自我评价分享
2013/11/04 职场文书
校本教研工作方案
2014/01/14 职场文书
养生餐厅创业计划书范文
2014/03/26 职场文书
法制宣传口号
2014/06/16 职场文书
小学生关于梦想的演讲稿
2014/08/22 职场文书
教师节活动总结
2014/08/29 职场文书
毕业欢送晚会主持词
2019/06/25 职场文书
redis配置文件中常用配置详解
2021/04/14 Redis
实战 快速定位MySQL的慢SQL
2022/03/22 MySQL