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 相关文章推荐
取得传值的函数
Oct 27 Javascript
用js脚本控制asp.net下treeview的NodeCheck的实现代码
Mar 02 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
Nov 25 Javascript
常见JS验证脚本汇总
Dec 01 Javascript
jQuery+ajax+asp.net获取Json值的方法
Jun 08 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
Aug 31 Javascript
jquery对Json的各种遍历方法总结(必看篇)
Sep 29 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
May 17 Javascript
使用watch监听路由变化和watch监听对象的实例
Feb 24 Javascript
Three.js实现简单3D房间布局
Dec 30 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
Aug 27 Javascript
解决layer.open后laydate失效的问题
Sep 06 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
DOTA2 6.87版本后新眼位详解攻略
2020/04/20 DOTA
php+AJAX传送中文会导致乱码的问题的解决方法
2008/09/08 PHP
php imagecreatetruecolor 创建高清和透明图片代码小结
2010/05/15 PHP
PHP在线调试执行的实现方法(附demo源码)
2016/04/28 PHP
PHP封装的MSSql操作类完整实例
2016/05/26 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
2020/12/30 PHP
让您的菜单不离网站
2006/10/03 Javascript
Jquery 基础学习笔记
2009/05/29 Javascript
Javascript 读取操作Sql中的Xml字段
2014/10/09 Javascript
使用JavaScript实现ajax的实例代码
2016/05/11 Javascript
微信小程序 数据访问实例详解
2016/10/08 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
详解vue-cli 接口代理配置
2017/12/13 Javascript
Vue表单demo v-model双向绑定问题
2018/06/29 Javascript
javascript显示动态时间的方法汇总
2018/07/06 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
2018/09/18 Javascript
nodejs基础之多进程实例详解
2018/12/27 NodeJs
Vue 引入AMap高德地图的实现代码
2019/04/29 Javascript
关于angular浏览器兼容性问题的解决方案
2020/07/26 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
vue 实现图片懒加载功能
2020/12/31 Vue.js
使用CSS3制作一个简单的Chrome模拟器
2015/07/15 HTML / CSS
美国婴儿用品店:Babies”R”Us
2017/10/12 全球购物
就业自我评价
2014/02/04 职场文书
学生期末评语大全
2014/04/30 职场文书
初中学校军训方案
2014/05/09 职场文书
政治学求职信
2014/06/03 职场文书
幼儿园重阳节活动总结
2015/05/05 职场文书
Java 在线考试云平台的实现
2021/11/23 Java/Android
Python matplotlib多个子图绘制整合
2022/04/13 Python
Windows Server 2008配置防火墙策略详解
2022/06/28 Servers
TS 类型兼容教程示例详解
2022/09/23 Javascript