1.0.1 • Published 4 years ago

vue-parallax-background v1.0.1

Weekly downloads
6
License
ISC
Repository
github
Last release
4 years ago

vue-parallax-background

Made for use in Vue 2.x

A lightweight component, whose only dependencies are Vue.js and core.js! Provides parallax effect for components with both mousemove, and scroll events.

Installation

npm i vue-parallax-background or yarn add vue-parallax-background

Usage

The background images are retrieved from the assets/img directory.

Basic usage

The component can be used to setup a background image that responds to scroll events:

<template>
    <parallax-background
      :bg-img="bgImg" 
      :friction="friction"
      fixed // Optional fixed attribute to set position to fixed
      speedFactor="0.8"
      event-type="scroll"
      height="70"
    />
    ...
</template>
<script>
import ParallaxBackground from "@/components/ParallaxBackground/ParallaxBackground";
export default {
  name: "SomeComponent",
  components: { ParallaxBackground },
  data: () => ({
    bgImg: "geo building.jpg",
    friction: 1 / 1000
  })
};
</script>

Mouse movement

It can respond to mouse movement over the component itself:

<template>
    <parallax-background
      class="parallaxBg"
      :bg-img="bgImg"
      :friction="friction"
      speedFactor="0.8"
      event-type="mousemove"
      height="70"
    />
</template>
<script>
import ParallaxBackground from "@/components/ParallaxBackground/ParallaxBackground";
export default {
  name: "LandingPage",
  components: { ParallaxBackground },
  data: () => ({
    bgImg: "geo building.jpg",
    friction: 1 / 1000
  })
};
</script>

Gradients

You can pass in gradients to be used alone, or to be layered on-top of your image! Just put the CSS as a string into an array and pass them into the component with property binding:

<template>
    <parallax-background
      class="parallaxBg"
      :bg-img="bgImg"
      :friction="friction"
      speedFactor="0.8"
      :gradients="gradients"
      event-type="mousemove"
      height="70"
    />
</template>
<script>
import ParallaxBackground from "@/components/ParallaxBackground/ParallaxBackground";
export default {
  name: "LandingPage",
  components: { ParallaxBackground },
  data: () => ({
    bgImg: "geo building.jpg",
    friction: 1 / 1000,
    gradients: [
      "radial-gradient(closest-side,rgba(52, 121, 182, 0.2), rgba(8, 8, 8, 0.4))",
      "linear-gradient(to bottom, rgba(52, 121, 182, 0.4), rgb(8, 8, 8))"
    ]
  })
};
</script>

Pass content into the component

You can use the content slot to pass content into the component that will be layered on top of the image:

<template>
    <parallax-background
      class="parallaxBg"
      :bg-img="bgImg"
      :friction="friction"
      speedFactor="0.8"
      :gradients="gradients"
      event-type="mousemove"
      height="70"
    >
        <template v-slot:content>
            <article style="padding-top: 10em;">
                Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
                eiusmod tempor incididunt ut labore et dolore magna aliqua. Eget sit
                amet tellus cras adipiscing enim. Nunc lobortis mattis aliquam
                faucibus purus in massa. Rutrum quisque non tellus orci ac auctor. A
                lacus vestibulum sed arcu. Enim ut tellus elementum sagittis vitae
                et. Dui id ornare arcu odio.
            </article>
        </template>
</template>
<script>
import ParallaxBackground from "@/components/ParallaxBackground/ParallaxBackground";
export default {
  name: "LandingPage",
  components: { ParallaxBackground },
  data: () => ({
    bgImg: "geo building.jpg",
    friction: 1 / 1000,
    gradients: [
      "radial-gradient(closest-side,rgba(52, 121, 182, 0.2), rgba(8, 8, 8, 0.4))",
      "linear-gradient(to bottom, rgba(52, 121, 182, 0.4), rgb(8, 8, 8))"
    ]
  })
};
</script>

Props

PropTypeDescription
bgImgStringName of the image to lookup including the file type. Must be located in @/assets/img
breakpointStringUsed to control breakpoints in the page, which handles the scroll listener adding and removal for page resizing
directionStringDetermines which direction the parallax should work on; moves the image "up" or "down"
eventTypeStringCan be either "mousemove" or "scroll". Determines what event the parallax effect works with
fixedBooleanIf present, determines if the background image is fixed or not
frictionNumberFriction co-efficient. Ex) 1/1000. Used by mousemove events, determines how responsive the image is to mouse movement
gradientsArrayAn array of CSS gradients, as strings. These can be used without a background image, or in conjunction with one
heightStringHeight of the containing element for the image. Pass in the raw number, and it is converted to the "vh" equivalent
speedFactorNumberUsed with the scroll event, determines how quickly the image moves in response to page scrolling. Higher numbers equate to more movement
1.0.1

4 years ago

1.0.0

4 years ago

0.2.1

4 years ago

0.2.0

4 years ago

0.2.6

4 years ago

0.2.3

4 years ago

0.2.2

4 years ago

0.2.5

4 years ago

0.2.4

4 years ago

0.1.0

4 years ago