Vue 过渡动画js自动实现
1、通过指令安装jquery插件,指令:npm install jquery --save
2、修改webpack.base.conf.js配置,通过new webpack.ProvidePlugin方式,不需要导入jquery,可直接使用
3、通过<transition @before-enter="beforeEnter" @enter="enter" @leave="leave" > </transition> 方式,扑捉各个事件,进行相应动画操作
4、beforeEnter: function (el) { //进入标签前事件(就是标签显示时的事件)
$(el).css({
left: '50px',
opacity: 0
})
}
enter: function (el, done) { //进入标签事件(就是标签显示那一刻)
$(el).animate({ //animate() 方法执行 CSS 属性集的自定义动画。
left: '200px', 语法1:$(selector).animate(styles,speed,easing,callback)
opacity: 1 语法2:$(selector).animate(styles,options) 可选。规定动画的额外选项 :speed - 设置动画的速度 easing - 规定要使用的 easing 函数 callback - 规定动画完成之后要执行的函数 step - 规定动画的每一步完成之后要执行的函数 queue - 布尔值。指示是否在效果队列中放置动画。如果为 false,则动画将立即开始 specialEasing - 来自 styles 参数的一个或多个 CSS 属性的映射,以及它们的对应 easing 函数
第一个参数为样式,需要用{}来括起来,第二参数可以使 deration,complete等参数,也要用{}括起来
}, {
duration: 1500,
complete: done
})
},
leave: function (el, done) {
$(el).animate({
left:'1000px',
opacity:0
},{
duration:1500, //动画完成事件
complete:done //执行成功之后调用函数
})
}