smile-universal-parallax
v1.3.3
Published
Easy parallax plugin using vanilla javascript. Works on mobile devices (really). Lightweight (2kb). Cross browser compatibility
Downloads
41
Maintainers
Readme
Universal Parallax
Easy parallax plugin using pure javascript. Lightweight (2kb) and cross browser compatibility - including mobile platforms (iOS, Android).
See demo
:zap: Features
- Easy setup
- Pure JavaScript
- Adaptive height
- Works on mobile devices
- Lightweight (2kb minified)
:floppy_disk: Install
$ npm i universal-parallax -S or yarn add universal-parallax
:rocket: Setup
#1
Choose between:
- Include this in your
<head>
section
<link href="node_modules/universal-parallax/dist/universal-parallax.min.css" rel="stylesheet">
- Or add this CSS
.parallax__container {
clip: rect(0, auto, auto, 0);
height: 100%;
left: 0;
overflow: hidden;
position: absolute;
top: 0;
width: 100%;
z-index: -100;
}
.parallax {
position: fixed;
top: 0;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
width: 100%;
/* BG behaviour */
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}
:zap: BG behaviour in seperate class gives more flexibility controlling them :zap: SASS version available in /dist folder
#2
If <section>
is your container, make the parallax element inside it
<section>
<div class="parallax" data-parallax-image="path/to/your_image">
</section>
:zap: You can also use background-image
to define your image instead of using data-parallax-image=""
#3
Static HTML
Include the script to your project
Put the script at the bottom of your markup right after jQuery
<script src="https://code.jquery.com/jquery-3.4.1.min.js"
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
crossorigin="anonymous"></script>
<script src="node_modules/universal-parallax/dist/universal-parallax.min.js"></script>
Load
Webpack
Add jQuery via the "webpack.ProvidePlugin" to your webpack configuration:
//...
plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
'window.jQuery': 'jquery'
}),
],
//...
Load the required stylesheet and JS:
import 'universal-parallax/dist/universal-parallax.min.css';
import 'universal-parallax';
#4
Initialize the JS function
<script>
$(document).ready(function(){
$('.parallax').universalParallax();
});
</script>
That's it! :checkered_flag:
- If it resembles the demo - you're done :tada:
- See customizations underneath
- Please report any problems you find
- Otherwise, let me know me for new features or improvements. Thanks!
Custom speed
You can change the parallax speed; the higher the number, the slower the parallax effect
$(document).ready(function(){
$('.parallax').universalParallax({
speed: 6.0,
});
});
:zap: speed: 1
is the minimum value before the background image is fixed
Tips
Opacity
If you want your backround color to shine through or dampen the image without making it a .png - just add transparency to it
.parallax {
opacity: 0.5;
}