vue-animation
v0.1.0
Published
Vue Animation Components
Downloads
32
Maintainers
Readme
Install
npm install vue-animation --save
Usage
css animation
The animation will be triggered when
value
change totrue
. When the animation stoped,value
will be reset tofalse
. You'd better to usev-model
.AnimationType:
AnimationType = { BOUNCE: 'bounce', FLASH: 'flash', PULSE: 'pulse', RUBBERBAND: 'rubberBand', SHAKE: 'shake', HEADSHAKE: 'headShake', SWING: 'swing', TADA: 'tada', WOBBLE: 'wobble', JELLO: 'jello', HINGE: 'hinge', }
Example:
<template> <div class="demo-height-root" @click="triggerAction"> <animation-css :animation-type="AnimationType.TADA" v-model="trigger"> <p class="animated-body">案例库抵押后泵</p> </animation-css> </div> </template> /*********************************************/ <script> // Load on demand import {AnimationCss, AnimationCssType} from 'vue-animation' export default { components: { [AnimationCss.name]: AnimationCss, }, data () { return { AnimationType: AnimationCssType, trigger: false }; }, methods: { triggerAction() { this.trigger = true; } } } </script>
transition animation
Use this animation with
v-show
orv-if
. You need to setanimation-in-type
andanimation-out-type
. That's all.AnimationType:
AnimationType = { BOUNCEIN: 'bounceIn', BOUNCEINDOWN: 'bounceInDown', BOUNCEINLEFT: 'bounceInLeft', BOUNCEINRIGHT: 'bounceInRight', BOUNCEINUP: 'bounceInUp', BOUNCEOUT: 'bounceOut', BOUNCEOUTDOWN: 'bounceOutDown', BOUNCEOUTLEFT: 'bounceOutLeft', BOUNCEOUTRIGHT: 'bounceOutRight', BOUNCEOUTUP: 'bounceOutUp', FADEIN: 'fadeIn', FADEINDOWN: 'fadeInDown', FADEINDOWNBIG: 'fadeInDownBig', FADEINLEFT: 'fadeInLeft', FADEINLEFTBIG: 'fadeInLeftBig', FADEINRIGHT: 'fadeInRight', FADEINRIGHTBIG: 'fadeInRightBig', FADEINUP: 'fadeInUp', FADEINUPBIG: 'fadeInUpBig', FADEOUT: 'fadeOut', FADEOUTDOWN: 'fadeOutDown', FADEOUTDOWNBIG: 'fadeOutDownBig', FADEOUTLEFT: 'fadeOutLeft', FADEOUTLEFTBIG: 'fadeOutLeftBig', FADEOUTRIGHT: 'fadeOutRight', FADEOUTRIGHTBIG: 'fadeOutRightBig', FADEOUTUP: 'fadeOutUp', FADEOUTUPBIG: 'fadeOutUpBig', FLIPINX: 'flipInX', FLIPINY: 'flipInY', FLIPOUTX: 'flipOutX', FLIPOUTY: 'flipOutY', LIGHTSPEEDIN: 'lightSpeedIn', LIGHTSPEEDOUT: 'lightSpeedOut', ROTATEIN: 'rotateIn', ROTATEINDOWNLEFT: 'rotateInDownLeft', ROTATEINDOWNRIGHT: 'rotateInDownRight', ROTATEINUPLEFT: 'rotateInUpLeft', ROTATEINUPRIGHT: 'rotateInUpRight', ROTATEOUT: 'rotateOut', ROTATEOUTDOWNLEFT: 'rotateOutDownLeft', ROTATEOUTDOWNRIGHT: 'rotateOutDownRight', ROTATEOUTUPLEFT: 'rotateOutUpLeft', ROTATEOUTUPRIGHT: 'rotateOutUpRight', JACKINTHEBOX: 'jackInTheBox', ROLLIN: 'rollIn', ROLLOUT: 'rollOut', ZOOMIN: 'zoomIn', ZOOMINDOWN: 'zoomInDown', ZOOMINLEFT: 'zoomInLeft', ZOOMINRIGHT: 'zoomInRight', ZOOMINUP: 'zoomInUp', ZOOMOUT: 'zoomOut', ZOOMOUTDOWN: 'zoomOutDown', ZOOMOUTLEFT: 'zoomOutLeft', ZOOMOUTRIGHT: 'zoomOutRight', ZOOMOUTUP: 'zoomOutUp', SLIDEINDOWN: 'slideInDown', SLIDEINLEFT: 'slideInLeft', SLIDEINRIGHT: 'slideInRight', SLIDEINUP: 'slideInUp', SLIDEOUTDOWN: 'slideOutDown', SLIDEOUTLEFT: 'slideOutLeft', SLIDEOUTRIGHT: 'slideOutRight', SLIDEOUTUP: 'slideOutUp', }
Example:
<template> <div class="demo-height-root" @click="rootAction"> <animation-transition :animation-in-type="AnimationType.BOUNCEIN" :animation-out-type="AnimationType.BOUNCEOUT"> <p v-show="show" class="animated-body">案例库抵押后泵</p> </animation-transition> </div> </template> /*********************************************/ <script> import {AnimationVueTransition, AnimationVueTransitionType} from 'vue-animation' export default { components: { [AnimationVueTransition.name]: AnimationVueTransition, }, data () { return { AnimationType: AnimationVueTransitionType, show: true }; }, methods: { rootAction() { this.show = !this.show; } } } </script>
velocity animation
1, Animations that can be configured:
clickAnimation, mouseenterAnimation, mouseoutAnimation, mouseupAnimation, mousedownAnimation, mouseoverAnimation, mouseleaveAnimation,
Animations above will be triggered by mouse event.
2, Another animation:
animation
The
animation
will not be affected by mouse event. You have to manually trigger it like thisthis.$ref.animationRoot.trigger()
3, If you set
mouseenterWithMousedown
totrue
. Only in the scene below will trigger themousedownAnimation
.The
mouseenter
event hanppens in the inner of animate element and hold it, then move cursor out of the animate element, continues to hold mouse left button down, move cursor enter the animate element, themouseenter
event will be triggered andmouseenterAnimation
will be triggered.How to configure a animation?
Read the document of Velocity and example below.
Example:
<template> <div class="demo-height-root" @click.self="trigger"> <animation-velocity ref="animateRoot" :mouseenterWithMousedown="true" :animation="animation" :mousedownAnimation="mousedownAnimation" :mouseupAnimation="mouseupAnimation" :mouseenterAnimation="mousedownAnimation" :mouseoutAnimation="mouseupAnimation"> <p class="animated-body">案例库抵押后泵</p> </animation-velocity> </div> </template> /*********************************************/ <script> import {AnimationVelocity} from 'vue-animation' export default { components: { [AnimationVelocity.name]: AnimationVelocity, }, data () { return { mousedownAnimation: [{ animation: {scale: 0.8}, options: {duration: 200, queue: false} }], mouseupAnimation: [{ animation: {scale: 1}, options: {duration: 200, queue: false} }], animation: [{ animation: {translateX: '15px', rotateZ: '50deg'}, options: {duration: 600} }, { animation: {rotateZ: '100deg'}, options: {loop: 2} }, { animation: { rotateZ: '45deg', translateY: '30px', translateX: '30px', } }] }; }, methods: { trigger() { this.$refs.animateRoot.trigger(); } } } </script>