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 相关文章推荐
关于Javascript 的 prototype问题。
Jan 03 Javascript
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
Dec 11 Javascript
JS无限树状列表实现代码
Jan 11 Javascript
javascript之典型高阶函数应用介绍二
Jan 10 Javascript
使用js实现关闭js弹出层的窗口
Feb 10 Javascript
jquery统计用户选中的复选框的个数
Jun 06 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
Mar 28 Javascript
jQuery EasyUI中DataGird动态生成列的方法
Apr 05 Javascript
discuz表情的JS提取方法分析
Mar 22 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
Nov 08 Javascript
移动端(微信等使用vConsole调试console的方法
Mar 05 Javascript
Element实现表格嵌套、多个表格共用一个表头的方法
May 09 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
php中的注释、变量、数组、常量、函数应用介绍
2012/11/16 PHP
php遍历目录方法小结
2015/03/10 PHP
四个PHP非常实用的功能
2015/09/29 PHP
PHP如何将图片文件上传到另外一台服务器上
2019/08/26 PHP
Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)
2010/07/11 Javascript
浅析JavaScript中的delete运算符
2013/11/30 Javascript
javascript函数声明和函数表达式区别分析
2014/12/02 Javascript
node.js中的fs.rename方法使用说明
2014/12/16 Javascript
Javascript编写俄罗斯方块思路及实例
2015/07/07 Javascript
jQuery EasyUI API 中文帮助文档和扩展实例
2016/08/01 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
基于Vue实例对象的数据选项
2017/08/09 Javascript
js canvas实现写字动画效果
2018/11/30 Javascript
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
详解vue-cli 脚手架 安装
2019/04/16 Javascript
用node.js写一个jenkins发版脚本
2019/05/21 Javascript
vue-resource post数据时碰到Django csrf问题的解决
2020/03/13 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
vue router-link 默认a标签去除下划线的实现
2020/11/06 Javascript
[02:10]探秘浦东源深体育馆 DOTA2 Supermajor不见不散
2018/05/17 DOTA
Python 的 Socket 编程
2015/03/24 Python
Python网络爬虫实例讲解
2016/04/28 Python
浅谈python中的实例方法、类方法和静态方法
2017/02/17 Python
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
python保存字典和读取字典的实例代码
2019/07/07 Python
python实现图片中文字分割效果
2019/07/22 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
CSS3动画之利用requestAnimationFrame触发重新播放功能
2019/09/11 HTML / CSS
Turnbull & Asser官网:英国皇室御用的顶级定制衬衫
2019/01/31 全球购物
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
Android interview questions
2016/12/25 面试题
体现团队精神的口号
2014/06/06 职场文书
傅雷家书读书笔记
2015/06/29 职场文书
redis缓存存储Session原理机制
2021/11/20 Redis