1.0.0 • Published 5 years ago

vue-rectangle-reveal v1.0.0

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

vue-rectangle-reveal

A Vue.js 2.0 component to reveal elements with a trending rectangle shape animation

Demo

Live demo

Coming soon

Installation

NPM

 npm i --save vue-rectangle-reveal

Example

:information_desk_person: You can reveal whatever element you want, whether they are texts, images and so on... Here is the easiest way to use this component :

    <template>
        <vue-rectangle-reveal>
            <h1>My text to reveal</h1>
        </vue-rectangle-reveal>
    </template>
        
    <script>
        import VueRectangleReveal from "vue-rectangle-reveal";
        
        export default {
            components: {
                VueRectangleReveal,
            },
        };
    </script>

What is in the default slot of the component will be invisible at the beginning, then covered by the animating rectangle shape, to eventually be revealed.

Here is a more complete example if you want to control the behavior of the component the way you like :ok_woman: :

    <template>
        <vue-rectangle-reveal ref="imageRectangleReveal" 
                              :delay="0.5" 
                              :duration="1.5" 
                              color="#d7a19e">
            <img src="path/to/my-image.jpg" width="700px" height="auto"/>
        </vue-rectangle-reveal>
    </template>
        
    <script>
        import VueRectangleReveal from "vue-rectangle-reveal";
        
        export default {
            components: {
                VueRectangleReveal,
            },
            mounted(){
                setTimeout(async() => {
                    await this.$refs.imageRectangleReveal
                        .setDelay(0.3) // set the delay on the fly
                        .setDuration(1.2) // set the duration on the fly
                        .animateOut();
                    
                    //Do something when the animation is done
                    console.log("done")
                },6000)
            }
        };
    </script>

Props

nametypedescriptionrequireddefault value
durationNumberThe duration of the animation in secondsfalse1.2
delayNumberThe delay of the animation in secondsfalse0
easingStringThe easing to use for the animationfalse"1.000, 0.000, 0.000, 1.000" / easeInOutExpo/
colorStringThe color of the rectangle shape, with the css color formatfalse"black"
autoPlayAnimationBooleanWhether the animation is to be played automaticallyfalsetrue
directionStringThe direction in which the animation is done (can be "right""left""top""bottom")false"right"

Methods

NameDescriptionParamsReturns
animateInPlay the animate-in animationa Promise resolved when the animation is done
animateOutPlay the animate-out animationa Promise resolved when the animation is done
setDelay(delay)Set the delay of the animation in secondsdelay : the delay to setthe component so that you can chain its methods
setDuration(duration)Set the duration of the animation in secondsduration : the duration to setthe component so that you can chain its methods

Events emitted

NameDescription
animationEndFired when the animation is done

Contributing

Contributions are welcome ! Follow the instructions in the contributing file

License

MIT