Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Locomotive Scroll | 6,531 | 7 | 11 | 7 days ago | 65 | February 03, 2022 | 233 | mit | JavaScript | |
🛤 Detection of elements in viewport & smooth scrolling with parallax. | ||||||||||
Stellar.js | 4,644 | 4 years ago | 1 | March 27, 2016 | 94 | mit | JavaScript | |||
Stellar.js - Parallax scrolling made easy | ||||||||||
Parallax.js | 3,423 | 37 | 1 | a year ago | 4 | October 19, 2017 | 45 | mit | JavaScript | |
Simple parallax scrolling effect inspired by Spotify.com implemented as a jQuery plugin | ||||||||||
Androidscrollingimageview | 1,676 | 2 years ago | 13 | mit | Java | |||||
An Android view for displaying repeated continuous side scrolling images. This can be used to create a parallax animation effect. | ||||||||||
Cool Kitten | 1,418 | 6 years ago | 41 | JavaScript | ||||||
A parallax scrolling responsive framework | ||||||||||
Rallax.js | 1,407 | 1 | 1 | 4 years ago | 6 | December 21, 2018 | 4 | mit | JavaScript | |
Dead simple parallax scrolling. | ||||||||||
Parallaxtableviewheader | 1,347 | 4 years ago | 13 | Objective-C | ||||||
Parallax scrolling effect on UITableView header view when a tableView is scrolled | ||||||||||
Mjparallaxcollectionview | 1,264 | 7 years ago | 4 | mit | Objective-C | |||||
This is a parallax for the cells inside UICollectionView. It gives us an effect just like scrolling the images in Whatsapp or scrolling through the Weather app for iOS | ||||||||||
Jarallax | 1,248 | 102 | 25 | 3 months ago | 30 | March 30, 2022 | 18 | mit | JavaScript | |
Parallax scrolling for modern browsers | ||||||||||
Scroll Out | 1,184 | 5 months ago | 28 | TypeScript | ||||||
ScrollOut detects changes in scroll for reveal, parallax, and CSS Variable effects! |
Parallax scrolling for modern browsers. Supported <img> tags, background images, YouTube, Vimeo and Self-Hosted Videos.
We made WordPress plugin to easily add backgrounds for content in your blog with all Jarallax features.
Demo: https://wpbackgrounds.com/
Download: https://wordpress.org/plugins/advanced-backgrounds/
There are a set of examples, which you can use as a starting point with Jarallax.
Use one of the following examples to import jarallax.
We provide a version of Jarallax built as ESM (jarallax.esm.js and jarallax.esm.min.js) which allows you to use Jarallax as a module in your browser, if your targeted browsers support it.
<script type="module">
import { jarallax, jarallaxVideo } from "jarallax.esm.min.js";
// Optional video extension
jarallaxVideo();
</script>
<script type="module">
import { jarallax, jarallaxVideo } from "https://cdn.jsdelivr.net/npm/[email protected]/+esm";
// Optional video extension
jarallaxVideo();
</script>
Jarallax may be also used in a traditional way by including script in HTML and using library by accessing window.jarallax
.
<script src="jarallax.min.js"></script>
<!-- Optional video extension -->
<script src="jarallax-video.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jarallax.min.js"></script>
<!-- Optional video extension -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jarallax-video.min.js"></script>
Install Jarallax as a Node.js module using npm
npm install jarallax
Import Jarallax by adding this line to your app's entry point (usually index.js
or app.js
):
import { jarallax, jarallaxVideo } from "jarallax";
// Optional video extension
jarallaxVideo();
These styles required to set proper background image position before Jarallax script initialized:
.jarallax {
position: relative;
z-index: 0;
}
.jarallax > .jarallax-img {
position: absolute;
object-fit: cover;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
}
You can include it from /dist/jarallax.css
.
<!-- Background Image Parallax -->
<div class="jarallax">
<img class="jarallax-img" src="<background_image_url_here>" alt="">
Your content here...
</div>
<!-- Background Image Parallax with <picture> tag -->
<div class="jarallax">
<picture class="jarallax-img">
<source media="..." srcset="<alternative_background_image_url_here>">
<img src="<background_image_url_here>" alt="">
</picture>
Your content here...
</div>
<!-- Alternate: Background Image Parallax -->
<div class="jarallax" style="background-image: url('<background_image_url_here>');">
Your content here...
</div>
Note: automatic data-attribute initialization and jQuery integration are available in UMD mode only.
jarallax(document.querySelectorAll('.jarallax'), {
speed: 0.2,
});
<div data-jarallax data-speed="0.2" class="jarallax">
<img class="jarallax-img" src="<background_image_url_here>" alt="">
Your content here...
</div>
Note: You can use all available options as data attributes. For example: data-speed
, data-img-src
, data-img-size
, etc...
$('.jarallax').jarallax({
speed: 0.2,
});
Sometimes to prevent existing namespace collisions you may call .noConflict
on the script to revert the value of.
const jarallaxPlugin = $.fn.jarallax.noConflict() // return $.fn.jarallax to previously assigned value
$.fn.newJarallax = jarallaxPlugin // give $().newJarallax the Jarallax functionality
import { jarallax, jarallaxVideo } from 'jarallax';
jarallaxVideo();
jarallax(document.querySelectorAll('.jarallax'), {
speed: 0.2,
videoSrc: 'https://www.youtube.com/watch?v=ab0TSkLe-E0'
});
<div class="jarallax"></div>
<!-- Background YouTube Parallax -->
<div class="jarallax" data-jarallax data-video-src="https://www.youtube.com/watch?v=ab0TSkLe-E0">
Your content here...
</div>
<!-- Background Vimeo Parallax -->
<div class="jarallax" data-jarallax data-video-src="https://vimeo.com/110138539">
Your content here...
</div>
<!-- Background Self-Hosted Video Parallax -->
<div class="jarallax" data-jarallax data-video-src="mp4:./video/local-video.mp4,webm:./video/local-video.webm,ogv:./video/local-video.ogv">
Your content here...
</div>
Note: self-hosted videos require 1 video type only, not necessarily using all mp4, webm, and ogv. This is only needed for maximum compatibility with all browsers.
Options can be passed in data attributes or in object when you initialize jarallax from script.
Name | Type | Default | Description |
---|---|---|---|
type | string | scroll |
scroll, scale, opacity, scroll-opacity, scale-opacity. |
speed | float | 0.5 |
Parallax effect speed. Provide numbers from -1.0 to 2.0. |
containerClass | string | jarallax-container |
Container block class attribute. |
imgSrc | path | null |
Image url. By default used image from background. |
imgElement | dom / selector | .jarallax-img |
Image tag that will be used as background. |
imgSize | string | cover |
Image size. If you use <img> tag for background, you should add object-fit values, else use background-size values. |
imgPosition | string | 50% 50% |
Image position. If you use <img> tag for background, you should add object-position values, else use background-position values. |
imgRepeat | string | no-repeat |
Image repeat. Supported only background-position values. |
keepImg | boolean | false |
Keep <img> tag in it's default place after Jarallax inited. |
elementInViewport | dom | null |
Use custom DOM / jQuery element to check if parallax block in viewport. More info here - Issue 13. |
zIndex | number | -100 |
z-index of parallax container. |
disableParallax | RegExp / function | - | Disable parallax on specific user agents (using regular expression) or with function return value. The image will be set on the background. |
You can disable parallax effect and/or video background on mobile devices using option disableParallax
and/or disableVideo
.
Example:
jarallax(document.querySelectorAll('.jarallax'), {
disableParallax: /iPad|iPhone|iPod|Android/,
disableVideo: /iPad|iPhone|iPod|Android/
});
Or using function. Example:
jarallax(document.querySelectorAll('.jarallax'), {
disableParallax: function () {
return /iPad|iPhone|iPod|Android/.test(navigator.userAgent);
},
disableVideo: function () {
return /iPad|iPhone|iPod|Android/.test(navigator.userAgent);
}
});
Required jarallax/jarallax-video.js
file.
Name | Type | Default | Description |
---|---|---|---|
videoClass | string | jarallax-video |
Video frame class attribute. Will also contain the type of the video, for example jarallax-video jarallax-video-youtube
|
videoSrc | string | null |
You can use Youtube, Vimeo or Self-Hosted videos. Also you can use data attribute data-jarallax-video . |
videoStartTime | float | 0 |
Start time in seconds when video will be started (this value will be applied also after loop). |
videoEndTime | float | 0 |
End time in seconds when video will be ended. |
videoLoop | boolean | true |
Loop video to play infinitely. |
videoPlayOnlyVisible | boolean | true |
Play video only when it is visible on the screen. |
videoLazyLoading | boolean | true |
Preload videos only when it is visible on the screen. |
disableVideo | RegExp / function | - | Disable video load on specific user agents (using regular expression) or with function return value. The image will be set on the background. |
Events used the same way as Options.
Name | Description |
---|---|
onScroll | Called when parallax working. Use first argument with calculations. More info see below. |
onInit | Called after init end. |
onDestroy | Called after destroy. |
onCoverImage | Called after cover image. |
Required jarallax/jarallax-video.js
file.
Name | Description |
---|---|
onVideoInsert | Called right after video is inserted in the parallax block. Video can be accessed by this.$video
|
onVideoWorkerInit | Called after VideoWorker script initialized. Available parameter with videoWorkerObject. |
jarallax(document.querySelectorAll('.jarallax'), {
onScroll: function(calculations) {
console.log(calculations);
}
});
Console Result:
{
// parallax section client rect (top, left, width, height)
rect : object,
// see image below for more info
beforeTop : float,
beforeTopEnd : float,
afterTop : float,
beforeBottom : float,
beforeBottomEnd : float,
afterBottom : float,
// percent of visible part of section (from 0 to 1)
visiblePercent : float,
// percent of block position relative to center of viewport from -1 to 1
fromViewportCenter: float
}
Name | Result | Description |
---|---|---|
destroy | - | Destroy Jarallax and set block as it was before plugin init. |
isVisible | boolean | Check if parallax block is in viewport. |
onResize | - | Fit image and clip parallax container. Called on window resize and load. |
onScroll | - | Calculate parallax image position. Called on window scroll. |
jarallax(document.querySelectorAll('.jarallax'), 'destroy');
$('.jarallax').jarallax('destroy');
npm install
in the command linenpm run dev
to run build and start local server with files watchernpm run build
to run buildnpm run js-lint
to show eslint errorsnpm run js-lint-fix
to automatically fix some of the eslint errorsnpm run test
to run unit tests