Parallax
Parallax
component used move property from one value to another, based on the scrolled distance.
Using
Parallax
is a render-less component, which accepts from
and to
props, and provide you with the current state using parallax
scoped-slot.
<parallax :from="{ x: 0 }" :to="{ x: 300 }">
<div
class="box"
slot-scope="{ parallax }"
:style="`transform: translateX(${parallax.x}px)`"
></div>
</parallax>
The element will have the starting value, when its top enters the view-port, the value will accelerate when view-port scrolls, and will reach its ending value when the element leaves the view-port.
<parallax :from="{ x: 0 }" :to="{ x: 300 }">
<div
class="box"
slot-scope="{ parallax }"
:style="`transform: translateX(${parallax.x}px)`"
></div>
</parallax>
You can set ratio of view-port, that the element should travel to reach its ending value, using viewportRatio
prop.
<parallax :from="{ x: 0 }" :to="{ x: 300 }" :viewportRatio="0.5">
<div
class="box"
slot-scope="{ parallax }"
:style="`transform: translateX(${parallax.x}px)`"
>{{ parallax.x }}</div>
</parallax>
In the previous example, the element reached its ending value, when the element bottom arrives to the half of the view-port.
If you want to reach the ending value when element top edge reached the half of the view-port, you can set useElHeight
prop to be false.
<parallax :from="{ x: 0 }" :to="{ x: 300 }" :viewportRatio="0.5" :useElHeight="false">
<div
class="box"
slot-scope="{ parallax }"
:style="`transform: translateX(${parallax.x}px)`"
></div>
</parallax>
Props
Prop | Default | Description |
---|---|---|
from | {} | start values |
to | {} | end values |
viewportRatio | '1' | ratio of the view-port, where the element should reach the end value |
useElHeight | true | flag to indicated, whether using element's height in calculations or not |