# vue-parallax-background

> ## Project setup ``` yarn install ```

Latest version **1.0.1** (published 2020-04-02) · ISC license · 0 weekly downloads

## Install

```sh
npm install vue-parallax-background
pnpm add vue-parallax-background
yarn add vue-parallax-background
bun add vue-parallax-background
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.1 |
| Published | 2020-04-02 |
| First published | 2020-03-31 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Dependencies | 2 |
| Unpacked size | 75.6 KB |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| Author | Evan Bechtol |
| Maintainers | evan-bechtol |
| Keywords | Vue, parallax, background |

## Links

- npm: https://www.npmjs.com/package/vue-parallax-background
- Repository: https://github.com/evanbechtol/vue-parallax-background
- Homepage: https://github.com/evanbechtol/vue-parallax-background#readme
- Issues: https://github.com/evanbechtol/vue-parallax-background/issues
- npm.io page: https://npm.io/package/vue-parallax-background

## Dependencies (2)

- [vue](https://npm.io/package/vue.md) ^2.6.11
- [core-js](https://npm.io/package/core-js.md) ^3.6.4

## Recent versions

- 1.0.1 (latest) — 2020-04-02
- 1.0.0 — 2020-04-02
- 0.2.6 — 2020-04-01
- 0.2.5 — 2020-04-01
- 0.2.4 — 2020-04-01
- 0.2.3 — 2020-04-01
- 0.2.2 — 2020-04-01
- 0.2.1 — 2020-04-01
- 0.2.0 — 2020-04-01
- 0.1.0 — 2020-03-31

## README

# 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
| Prop        	| Type    	| Description                                                                                                                              	|
|-------------	|---------	|------------------------------------------------------------------------------------------------------------------------------------------	|
| bgImg       	| String  	| Name of the image to lookup including the file type. Must be located in @/assets/img                                                     	|
| breakpoint  	| String  	| Used to control breakpoints in the page, which handles the scroll listener adding and removal for page resizing                          	|
| direction   	| String  	| Determines which direction the parallax should work on; moves the image "up" or "down"                                                   	|
| eventType   	| String  	| Can be either "mousemove" or "scroll". Determines what event the parallax effect works with                                              	|
| fixed       	| Boolean 	| If present, determines if the background image is fixed or not                                                                           	|
| friction    	| Number  	| Friction co-efficient. Ex) 1/1000. Used by mousemove events, determines how responsive the image is to mouse movement                    	|
| gradients   	| Array   	| An array of CSS gradients, as strings. These can be used without a background image, or in conjunction with one                          	|
| height      	| String  	| Height of the containing element for the image. Pass in the raw number, and it is converted to the "vh" equivalent                       	|
| speedFactor 	| Number  	| Used with the scroll event, determines how quickly the image moves in response to page scrolling. Higher numbers equate to more movement 	|

---
_Source: https://npm.io/package/vue-parallax-background · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
