Simple and tiny JavaScript library that adds parallax animations on any images

Overview

simpleParallax logo

GitHub version Only 32 Kb GitHub issues code style: prettier

simpleParallax.js

simpleParallax.js is a very simple and tiny Vanilla JS library that adds parallax animations on any images.

Where it may be laborious to get results through other plugins, simpleParallax.js stands out for its ease and its visual rendering. The parallax effect is directly applied to image tags, there is no need to use background images. More info on the case study here.

Any image will fit. Try it out!

Installation

Old way

Simply copy/paste the below snippet just before your closing </body> tag:

<script src="simpleParallax.js"></script>

or use the below CDN link provided by jsDelivr.com:

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/simpleParallax.min.js"></script>

Via npm/yarn

You can also install it via:

#npm
npm install simple-parallax-js

#yarn
yarn add simple-parallax-js

and then import it as follows:

//ES6 import
import simpleParallax from 'simple-parallax-js';

//CommonJS
const simpleParallax = require('simple-parallax-js');

Initialization

Giving the following HTML:

 <img class="thumbnail" src="image.jpg" alt="image">

simply add the following JavaScript code:

const image = document.getElementsByClassName('thumbnail');
new simpleParallax(image);

and voilà!


You can also choose to apply the parallax on multiple images:

const images = document.querySelectorAll('img');
new simpleParallax(images);

Once simpleparallax has been correctly initialized, it adds the simple-parallax-initialized class on the container.

simpleParallax now works with video:

<video>
  <source src="video.mp4" type="video/mp4">
</video>
var video = document.getElementsByTagName('video');
new simpleParallax(video);

Settings

Setting Type Default Hint
orientation String up up - right - down - left - up left - up right - down left - down right
scale Number 1.3 need to be above 1
overflow Boolean false
delay Number 0 the delay is in second Watch out, sometimes this delay is causing issue on iOS devices #47
transition String '' any CSS transition
customContainer String or Node ''
customWrapper String '' the selector of the custom wrapper
maxTransition Number 0 it should be a percentage between 1 and 99

You can apply these settings with the following JS code:

var images = document.querySelectorAll('.thumbnail');
new simpleParallax(images, {
    delay: 0,
    orientation: 'down',
    scale: 1.3,
    overflow: true,
    customContainer: '.container',
    customWrapper: '.wrapper'
});

orientation - String - see example

This is the orientation (or direction) of the parallax effect. Choose up and when scrolling down, the image will translate from the bottom to the top (so the image will translate up). When scrolling up, the image will translate from the top to the bottom. Same logic applies for all others orientations (right, down, left, up left, up right, down left or down right). When 2 directions are combined (for example down right), the image will translate diagonally.

scale - Number - see example

The higher the scale is set, the more visible the parallax effect will be. In return, the image will lose in quality. To reduce the lossless effect, if the scale is set at 1.5 and your image is 500px width, do the simple math 500 * 1.5 = 750. So you can choose a 750px image to replace your 500px one, and don't see any quality leak. More information is available if you read the case study here.

overflow - Boolean - see example

By default, the image is scaled to apply a parallax effect without any overflow on the layout - you can check the case study to have a better understanding. When overflow is set to true, the image will translate out of its natural flow (so it may overlap with your content).

delay - Number - see example

When a delay is set, the translation of the image will continue during that delay when the user stops scrolling. That gives a very nice effect. The delay is in second. Watch out, sometimes this delay is causing issue on iOS devices #47

transition - String - see example

The transition setting works closely with the delay setting. This setting will add any CSS transition to the delay setting. For example, you can use ease or ease-in-out.

customContainer - String or Node

By default, the parallax calculation is done with the body scroll percentage. In some cases, the images may be in a container that has its own scroll area, so to have an accurate calculation, the custom container should be set.

customWrapper - String

In some cases, you want to use your own wrapper instead of the one created by the plugin. If you specify your custom wrapper, the plugin will add the "simpleParallax" class along with an "overflow: hidden" style.

maxTransition - Number - see example

The maxTransition setting should be used to stop the parallax animation after a given percentage. By default, it translates from 0% to 100% of the user viewport. You can change it here to any percentage you want.

Methods

refresh

Refresh a simpleParallax instance (to recalculate all the positions):

var images = document.querySelectorAll('img');
var instance = new simpleParallax(images);
instance.refresh();

By default, the refresh method is fired at every window resize.

destroy

Destroy a simpleParallax instance:

var images = document.querySelectorAll('img');
var instance = new simpleParallax(images);
instance.destroy();

Examples

You can find all the examples here.

Compatibility

IE Edge Firefox Chrome Safari Opera iOS Safari
no support 16+ 55+ 58+ 12.1+ 45+ 12.2+

Even though old browsers are not supported, the page won't crash. Simply, there will be no parallax.

If you want to support older browsers such as IE, you will need a polyfill for cloest() and Intersection Observer. Please note that even with polyfills, the parallax effect will not seem fluid.

Author

Geoffrey Signorato

Contributing

Open an issue or a pull request to suggest changes or additions.

Comments
  • Works intermittently on Chrome

    Works intermittently on Chrome

    Works fine in Firefox but sometimes in Chrome it initialises fine but nothing happens when you scroll.

    If I inspect element I can see that the translate3d doesn't change on scroll.

    I am not getting any errors in the console.

    I am using the most simple code:

     let images = document.getElementsByClassName('js-parallax');
    new simpleParallax(images);
    

    SimpleParallax version: 5.4.0 Chrome version: 81.0.4044.122

    opened by IOIIOOIO 9
  • Reference Error: Window not defined

    Reference Error: Window not defined

    Hi, great plugin! I installed via NPM and followed the setup guide but am getting the below error, any ideas?

    ReferenceError: window is not defined at Object.<anonymous> (/node_modules/simple-parallax-js/dist/simpleParallax.min.js:7:227) at Module._compile (internal/modules/cjs/loader.js:689:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10) at Module.load (internal/modules/cjs/loader.js:599:32) at tryModuleLoad (internal/modules/cjs/loader.js:538:12) at Function.Module._load (internal/modules/cjs/loader.js:530:3) at Module.require (internal/modules/cjs/loader.js:637:17) at require (internal/modules/cjs/helpers.js:20:18) at Object.<anonymous> (/gulpfile.js:41:24) at Module._compile (internal/modules/cjs/loader.js:689:30) 192-168-1-8:$ gulp /node_modules/simple-parallax-js/dist/simpleParallax.min.js:7 !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("simpleParallax",[],e):"object"==typeof exports?exports.simpleParallax=e():t.simpleParallax=e()}(window,(function(){return function(t){var e={};function n(i){if(e[i])return e[i].exports;var s=e[i]={i:i,l:!1,exports:{}};return t[i].call(s.exports,s,s.exports,n),s.l=!0,s.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var s in t

    opened by guyhamilton 7
  • horribly laggy on iOS Safari

    horribly laggy on iOS Safari

    Tested on iOS 13.3.1/13.4 iPhone 6/SE/7/8

    Dude I think a parallax lib is a bit unnecessary but why not. I guess it's primarily for Webdesigners. Whatever it's very laggy on mobile safari as mentioned on Reddit. Have a look on it 😉

    opened by deflectn 6
  • Still looks like the same issue with minified code is there...

    Still looks like the same issue with minified code is there...

    Or at least there is some kind of issue with the beginning of the code.

    Originally posted by @mallow76 in https://github.com/geosenna/simpleParallax/issues/5#issuecomment-427680161

    opened by habitualshaker 6
  • Parallax Without Scale

    Parallax Without Scale

    Hi,

    I really like simpleParallax solution for using Parallax but I really like to get the same effect without Scaling the image.

    I sow that when using the overflow: true property the Parallax is working but the image us bot displayed as scaled, so I try to use it and I added overflow: false CSS to the image parent to prevent the image overlap with your content, its works but there is a bug with the calculations and the image go out from its container a little.

    If there is any fix for that issue it will be perfect!

    1756922ae61b7430b5de547f9e8b1e8f

    opened by royshoa 5
  • Not applying to content that is hidden

    Not applying to content that is hidden

    I am trying to apply this on images that are in tabbed content where the parent selector is set to display:none until the tab is activated and the content is revealed.

    The parallax effect does not seem to be applied to this content that is set to display:none when simpleParallax is executed but display:block when the parent selector is activated.

    Is this a known issue? Is there a workaround that would be possible?

    opened by stardothosting 5
  • Apply transition after setting it to the right position (translate3d and scale)

    Apply transition after setting it to the right position (translate3d and scale)

    Hi, First of all I want to say that your javascript with images works pretty neat. It's the first proper code I find for parallax scrolling with images which are not set on the background with CSS :)

    I got the following issue, when I open a page with parallax you see the image transitioning to the right position with translate3d and scale. Which feels kinda buggy. Is there a way to set the translate3d and scale without applying a transition but adding the transition when the image is already set to the right position and you start scrolling? Would love to hear, this transition on load is some kind of deal breaker when you apply parallax to a header at the top of a page.

    opened by zhrance 4
  • Uncaught TypeError: simpleParallax is not a constructor

    Uncaught TypeError: simpleParallax is not a constructor

    Hello, When I try to use the last version (5.0.0), I get this error message:

    Uncaught TypeError: simpleParallax is not a constructor

    But when I use an older version (4.2.1), everything works as expected.

    Is there something special to do to make the last version work?

    Thanks

    bug 
    opened by mikeingz 4
  • move webpack & associated deps to dev deps

    move webpack & associated deps to dev deps

    These packages :

    "html-webpack-plugin": "^4.3.0",
    "webpack": "^4.43.0",
    "webpack-dev-server": "^3.11.0",
    

    are not immediate dependencies of the project but are "dev dependencies" instead. We should move them to the correct place because otherwize, the npm install simple-parallax-js or (yarn add simple-parallax-js) also installs these three dependencies (and their own deps and so on, more than 100 packages) on the project which uses simple-parallax-js, even if they are completely useless.

    opened by qnp 3
  • translateValueY jump on pageload

    translateValueY jump on pageload

    Hi,

    When the page loads my paralax element 'jumps' because it gets

    transform: translate3d(0px, 39px, 0px);
    

    applied in stead of:

    transform: translate3d(0px, 0, 0px);
    

    My config is:

    var shapes = document.querySelectorAll('.project-hero-shape svg');
    new simpleParallax(shapes, {
        orientation: 'up',
        delay: .1,
        overflow: true,
        transition: 'cubic-bezier(0,0,0,1)'
    });
    

    Is there a way around this?

    Thanks!

    opened by bobhuf 3
  • Use on figure element

    Use on figure element

    hi , Would it be possible to use this library for applying a parallax effect on <figure> element So the parallax could work on the<img> and <figcaption> tag at the same time ? Here is an exemple for the markup

     
    <figure>
     <img src="bubbles-work.jpeg">
     <figcaption>Bubbles at work</figcaption>
    </figure>
    

    Thanks

    opened by jd61284 3
  • ⬆️ Bump json5 from 1.0.1 to 1.0.2

    ⬆️ Bump json5 from 1.0.1 to 1.0.2

    Bumps json5 from 1.0.1 to 1.0.2.

    Release notes

    Sourced from json5's releases.

    v1.0.2

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295). This has been backported to v1. (#298)
    Changelog

    Sourced from json5's changelog.

    Unreleased [code, diff]

    v2.2.3 [code, diff]

    v2.2.2 [code, diff]

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).

    v2.2.1 [code, diff]

    • Fix: Removed dependence on minimist to patch CVE-2021-44906. (#266)

    v2.2.0 [code, diff]

    • New: Accurate and documented TypeScript declarations are now included. There is no need to install @types/json5. (#236, #244)

    v2.1.3 [code, diff]

    • Fix: An out of memory bug when parsing numbers has been fixed. (#228, #229)

    v2.1.2 [code, diff]

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • ⬆️ Bump json5, html-webpack-plugin, webpack, tsconfig-paths and webpack-cli

    ⬆️ Bump json5, html-webpack-plugin, webpack, tsconfig-paths and webpack-cli

    Bumps json5 to 2.2.3 and updates ancestor dependencies json5, html-webpack-plugin, webpack, tsconfig-paths and webpack-cli. These dependencies need to be updated together.

    Updates json5 from 2.1.3 to 2.2.3

    Release notes

    Sourced from json5's releases.

    v2.2.3

    v2.2.2

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).

    v2.2.1

    • Fix: Removed dependence on minimist to patch CVE-2021-44906. (#266)

    v2.2.0

    • New: Accurate and documented TypeScript declarations are now included. There is no need to install @types/json5. (#236, #244)
    Changelog

    Sourced from json5's changelog.

    v2.2.3 [code, diff]

    v2.2.2 [code, diff]

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).

    v2.2.1 [code, diff]

    • Fix: Removed dependence on minimist to patch CVE-2021-44906. (#266)

    v2.2.0 [code, diff]

    • New: Accurate and documented TypeScript declarations are now included. There is no need to install @types/json5. (#236, #244)
    Commits
    • c3a7524 2.2.3
    • 94fd06d docs: update CHANGELOG for v2.2.3
    • 3b8cebf docs(security): use GitHub security advisories
    • f0fd9e1 docs: publish a security policy
    • 6a91a05 docs(template): bug -> bug report
    • 14f8cb1 2.2.2
    • 10cc7ca docs: update CHANGELOG for v2.2.2
    • 7774c10 fix: add proto to objects and arrays
    • edde30a Readme: slight tweak to intro
    • 97286f8 Improve example in readme
    • Additional commits viewable in compare view

    Updates html-webpack-plugin from 4.3.0 to 5.5.0

    Changelog

    Sourced from html-webpack-plugin's changelog.

    5.5.0 (2021-10-25)

    Features

    • Support type=module via scriptLoading option (1e42625), closes #1663

    5.4.0 (2021-10-15)

    Features

    5.3.2 (2021-06-22)

    Bug Fixes

    • update lodash and pretty error (9c7fba0

    5.3.1 (2021-03-09)

    Bug Fixes

    • remove loader-utils from plugin core (82d0ee8)

    5.3.0 (2021-03-07)

    Features

    • allow to modify the interpolation options in webpack config (d654f5b)
    • drop loader-utils dependency (41d7a50)

    5.2.0 (2021-02-19)

    Features

    5.1.0 (2021-02-12)

    Features

    • omit html tag attribute with null/undefined/false value (aa6e78d), closes #1598

    5.0.0 (2021-02-03)

    ... (truncated)

    Commits
    • 873d75b chore(release): 5.5.0
    • ddeb774 chore: update examples
    • 1e42625 feat: Support type=module via scriptLoading option
    • 7d3645b Bump pretty-error to 4.0.0 to fix transitive vuln for ansi-regex CVE-2021-3807
    • 79be779 [chore] changes actions to run on pull_requests
    • b7e5859 [chore] fixes CI to avoid race conditions
    • 48131d3 chore(release): 5.4.0
    • 16a841a [chore] rebuild examples
    • 3bb7c17 Update index.js
    • e38ac97 Update index.js
    • Additional commits viewable in compare view

    Updates webpack from 4.43.0 to 5.75.0

    Release notes

    Sourced from webpack's releases.

    v5.75.0

    Bugfixes

    • experiments.* normalize to false when opt-out
    • avoid NaN%
    • show the correct error when using a conflicting chunk name in code
    • HMR code tests existance of window before trying to access it
    • fix eval-nosources-* actually exclude sources
    • fix race condition where no module is returned from processing module
    • fix position of standalong semicolon in runtime code

    Features

    • add support for @import to extenal CSS when using experimental CSS in node
    • add i64 support to the deprecated WASM implementation

    Developer Experience

    • expose EnableWasmLoadingPlugin
    • add more typings
    • generate getters instead of readonly properties in typings to allow overriding them

    v5.74.0

    Features

    • add resolve.extensionAlias option which allows to alias extensions
      • This is useful when you are forced to add the .js extension to imports when the file really has a .ts extension (typescript + "type": "module")
    • add support for ES2022 features like static blocks
    • add Tree Shaking support for ProvidePlugin

    Bugfixes

    • fix persistent cache when some build dependencies are on a different windows drive
    • make order of evaluation of side-effect-free modules deterministic between concatenated and non-concatenated modules
    • remove left-over from debugging in TLA/async modules runtime code
    • remove unneeded extra 1s timestamp offset during watching when files are actually untouched
      • This sometimes caused an additional second build which are not really needed
    • fix shareScope option for ModuleFederationPlugin
    • set "use-credentials" also for same origin scripts

    Performance

    • Improve memory usage and performance of aggregating needed files/directories for watching
      • This affects rebuild performance

    Extensibility

    • export HarmonyImportDependency for plugins

    v5.73.0

    ... (truncated)

    Commits

    Updates tsconfig-paths from 3.9.0 to 3.10.1

    Changelog

    Sourced from tsconfig-paths's changelog.

    [3.10.1] - 2021-07-06

    Fixed

    • Add register.js to published files

    [3.10.0] - 2021-07-06

    Added

    • feat(tsconfig-loader): extends config from node_modules (#106). Thanks to @​zorji for this PR!

    Fixed

    Commits

    Updates webpack-cli from 3.3.12 to 5.0.1

    Release notes

    Sourced from webpack-cli's releases.

    v5.0.1

    5.0.1 (2022-12-05)

    Bug Fixes

    • make define-process-env-node-env alias node-env (#3514) (346a518)

    v5.0.0

    5.0.0 (2022-11-17)

    Bug Fixes

    • improve description of the --disable-interpret option (#3364) (bdb7e20)
    • remove the redundant utils export (#3343) (a9ce5d0)
    • respect NODE_PATH env variable (#3411) (83d1f58)
    • show all CLI specific flags in the minimum help output (#3354) (35843e8)

    Features

    • failOnWarnings option (#3317) (c48c848)
    • update commander to v9 (#3460) (6621c02)
    • added the --define-process-env-node-env option
    • update interpret to v3 and rechoir to v0.8
    • add an option for preventing interpret (#3329) (c737383)

    BREAKING CHANGES

    • the minimum supported webpack version is v5.0.0 (#3342) (b1af0dc), closes #3342
    • webpack-cli no longer supports webpack v4, the minimum supported version is webpack v5.0.0
    • webpack-cli no longer supports webpack-dev-server v3, the minimum supported version is webpack-dev-server v4.0.0
    • remove the migrate command (#3291) (56b43e4), closes #3291
    • remove the --prefetch option in favor the PrefetchPlugin plugin
    • remove the --node-env option in favor --define-process-env-node-env
    • remove the --hot option in favor of directly using the HotModuleReplacement plugin (only for build command, for serve it will work)
    • the behavior logic of the --entry option has been changed - previously it replaced your entries, now the option adds a specified entry, if you want to return the previous behavior please use webpack --entry-reset --entry './src/my-entry.js'

    v4.10.0

    4.10.0 (2022-06-13)

    Bug Fixes

    Features

    v4.9.2

    4.9.2 (2022-01-24)

    ... (truncated)

    Changelog

    Sourced from webpack-cli's changelog.

    5.0.1 (2022-12-05)

    Bug Fixes

    • make define-process-env-node-env alias node-env (#3514) (346a518)

    5.0.0 (2022-11-17)

    Bug Fixes

    • improve description of the --disable-interpret option (#3364) (bdb7e20)
    • remove the redundant utils export (#3343) (a9ce5d0)
    • respect NODE_PATH env variable (#3411) (83d1f58)
    • show all CLI specific flags in the minimum help output (#3354) (35843e8)

    Features

    • failOnWarnings option (#3317) (c48c848)
    • update commander to v9 (#3460) (6621c02)
    • added the --define-process-env-node-env option
    • update interpret to v3 and rechoir to v0.8
    • add an option for preventing interpret (#3329) (c737383)

    BREAKING CHANGES

    • the minimum supported webpack version is v5.0.0 (#3342) (b1af0dc), closes #3342
    • webpack-cli no longer supports webpack v4, the minimum supported version is webpack v5.0.0
    • webpack-cli no longer supports webpack-dev-server v3, the minimum supported version is webpack-dev-server v4.0.0
    • remove the migrate command (#3291) (56b43e4), closes #3291
    • remove the --prefetch option in favor the PrefetchPlugin plugin
    • remove the --node-env option in favor --define-process-env-node-env
    • remove the --hot option in favor of directly using the HotModuleReplacement plugin (only for build command, for serve it will work)
    • the behavior logic of the --entry option has been changed - previously it replaced your entries, now the option adds a specified entry, if you want to return the previous behavior please use webpack --entry-reset --entry './src/my-entry.js'

    4.10.0 (2022-06-13)

    Bug Fixes

    Features

    4.9.2 (2022-01-24)

    Bug Fixes

    • respect negatedDescription for flags from schema (#3102) (463b731)

    ... (truncated)

    Commits
    • 4a0f893 chore(release): publish new version
    • 9de982c chore: fix cspell
    • 32d26c8 chore(deps-dev): bump cspell from 6.15.1 to 6.16.0 (#3517)
    • 2788bf9 chore(deps-dev): bump eslint from 8.28.0 to 8.29.0 (#3516)
    • ac88ee4 chore(deps-dev): bump lint-staged from 13.0.4 to 13.1.0 (#3515)
    • 346a518 fix: make define-process-env-node-env alias node-env (#3514)
    • 3ec7b16 chore(deps): bump yeoman-environment from 3.12.1 to 3.13.0 (#3508)
    • c8adfa6 chore(deps-dev): bump @​types/node from 18.11.9 to 18.11.10 (#3513)
    • 0ad8cc2 chore(deps-dev): bump cspell from 6.15.0 to 6.15.1 (#3512)
    • d30f261 chore(deps-dev): bump ts-loader from 9.4.1 to 9.4.2 (#3511)
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • ⬆️ Bump express from 4.17.1 to 4.18.2

    ⬆️ Bump express from 4.17.1 to 4.18.2

    Bumps express from 4.17.1 to 4.18.2.

    Release notes

    Sourced from express's releases.

    4.18.2

    4.18.1

    • Fix hanging on large stack of sync routes

    4.18.0

    ... (truncated)

    Changelog

    Sourced from express's changelog.

    4.18.2 / 2022-10-08

    4.18.1 / 2022-04-29

    • Fix hanging on large stack of sync routes

    4.18.0 / 2022-04-25

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • ⬆️ Bump qs from 6.5.2 to 6.5.3

    ⬆️ Bump qs from 6.5.2 to 6.5.3

    Bumps qs from 6.5.2 to 6.5.3.

    Changelog

    Sourced from qs's changelog.

    6.5.3

    • [Fix] parse: ignore __proto__ keys (#428)
    • [Fix] utils.merge`: avoid a crash with a null target and a truthy non-array source
    • [Fix] correctly parse nested arrays
    • [Fix] stringify: fix a crash with strictNullHandling and a custom filter/serializeDate (#279)
    • [Fix] utils: merge: fix crash when source is a truthy primitive & no options are provided
    • [Fix] when parseArrays is false, properly handle keys ending in []
    • [Fix] fix for an impossible situation: when the formatter is called with a non-string value
    • [Fix] utils.merge: avoid a crash with a null target and an array source
    • [Refactor] utils: reduce observable [[Get]]s
    • [Refactor] use cached Array.isArray
    • [Refactor] stringify: Avoid arr = arr.concat(...), push to the existing instance (#269)
    • [Refactor] parse: only need to reassign the var once
    • [Robustness] stringify: avoid relying on a global undefined (#427)
    • [readme] remove travis badge; add github actions/codecov badges; update URLs
    • [Docs] Clean up license text so it’s properly detected as BSD-3-Clause
    • [Docs] Clarify the need for "arrayLimit" option
    • [meta] fix README.md (#399)
    • [meta] add FUNDING.yml
    • [actions] backport actions from main
    • [Tests] always use String(x) over x.toString()
    • [Tests] remove nonexistent tape option
    • [Dev Deps] backport from main
    Commits
    • 298bfa5 v6.5.3
    • ed0f5dc [Fix] parse: ignore __proto__ keys (#428)
    • 691e739 [Robustness] stringify: avoid relying on a global undefined (#427)
    • 1072d57 [readme] remove travis badge; add github actions/codecov badges; update URLs
    • 12ac1c4 [meta] fix README.md (#399)
    • 0338716 [actions] backport actions from main
    • 5639c20 Clean up license text so it’s properly detected as BSD-3-Clause
    • 51b8a0b add FUNDING.yml
    • 45f6759 [Fix] fix for an impossible situation: when the formatter is called with a no...
    • f814a7f [Dev Deps] backport from main
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • ⬆️ Bump decode-uri-component from 0.2.0 to 0.2.2

    ⬆️ Bump decode-uri-component from 0.2.0 to 0.2.2

    Bumps decode-uri-component from 0.2.0 to 0.2.2.

    Release notes

    Sourced from decode-uri-component's releases.

    v0.2.2

    • Prevent overwriting previously decoded tokens 980e0bf

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.1...v0.2.2

    v0.2.1

    • Switch to GitHub workflows 76abc93
    • Fix issue where decode throws - fixes #6 746ca5d
    • Update license (#1) 486d7e2
    • Tidelift tasks a650457
    • Meta tweaks 66e1c28

    https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.1

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • ⬆️ Bump loader-utils from 1.4.0 to 1.4.2

    ⬆️ Bump loader-utils from 1.4.0 to 1.4.2

    Bumps loader-utils from 1.4.0 to 1.4.2.

    Release notes

    Sourced from loader-utils's releases.

    v1.4.2

    1.4.2 (2022-11-11)

    Bug Fixes

    v1.4.1

    1.4.1 (2022-11-07)

    Bug Fixes

    Changelog

    Sourced from loader-utils's changelog.

    1.4.2 (2022-11-11)

    Bug Fixes

    1.4.1 (2022-11-07)

    Bug Fixes

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Releases(5.6.1)
  • 5.6.1(Jul 26, 2020)

  • 5.5.1(Jun 9, 2020)

    The delay parameter has been set at 0 by default. This is sometimes causing an issue on iOS devices. Investigation and resolution still in progress via (#47)[https://github.com/geosigno/simpleParallax.js/issues/47]

    • #806835 - :ambulance: set the delay at 0 by default #47
    Source code(tar.gz)
    Source code(zip)
  • 5.5.0(Jun 7, 2020)

  • 5.4.1(May 25, 2020)

  • 5.4.0(Apr 8, 2020)

  • 5.3.0(Feb 1, 2020)

    This release add one parameter to simpleParallax - maxTransition. The maxTransition setting can be used to stop the parallax transition after a given percentage. By default, it translate from 0% to 100% of the user viewport. You can change it here to any percentage you want.

    • #23ff83 - ✨ add maxTransition parameter
    Source code(tar.gz)
    Source code(zip)
  • 5.2.0(Dec 7, 2019)

    This release is fixing one issue when the translation was applied after the transition, so the first translation on load time looked buggy. It also removes the breakpoint parameter, as this should be managed outside the simpleParallax plugin. It adds one new customContainer parameter for those who want to apply the parallax on a custom scroll container (rather than the document itself).

    • #76dfa35 - ⚡️ #26 separate CSS transition and transform to avoid buggy effect on loadtime
    • #d65531d - 🔥 remove breakpoint setting
    • #635788c - ✨ Custom scroll container option #32
    Source code(tar.gz)
    Source code(zip)
  • 5.1.0(Jun 13, 2019)

  • 5.0.2(Jun 4, 2019)

    This release fixes an issue when simpleParallax was initiliazed with a HTML Collection (eg: getElementsByClassName). A new helper has been created to convert all entry elements into an array.

    • 🐛 #68a5bf - fix Uncaught TypeError: this.element.addEventListener is not a function
    Source code(tar.gz)
    Source code(zip)
  • 5.0.1(Jun 3, 2019)

    This release fixes an issue when simpleParallax was loaded via script tag. The libraryExport parameter was not set as "default" so the following error appeared "Uncaught TypeError: simpleParallax is not a constructor".

    • 🐛 #bb99df - fix Uncaught TypeError: simpleParallax is not a constructor #17
    Source code(tar.gz)
    Source code(zip)
  • 5.0.0(May 22, 2019)

    This release is a full re-think and re-work of the architecture. simpleParallax now use ES6 classes.

    Here what has been done:

    • Gulp is not used anymore and has been replaced by Webpack and its libraryTarget set as UMD.
    • We now have a global simpleParallax container that initiates as many as you want instances of each parallax image. The controller and the instance are separated in two different files.
    • simpleParallax is now using the Intersection Observer API to check is an element is visible or not.
    • Destroy method has been simplified.
    • Breakpoint setting is now taking into consideration when user resize the window.
    • optimisation has been done with the Request Animation Frame. Now if you create a new parallax instance after you already created one before, this will be added in the same animation frame to gain performance. Really useful when you want different orientations of parallax in the same page.
    • no more IE11 support, polyfills have been removed. IE was never able to render the parallax effect properly anyway. If you still want to ensure compatibility to IE11, use the version 4.2.1.
    • 4 new orientations have been added - up left, up right, down left, and down right.

    simpleparallax.com and the logo have been refreshed by the way.

    List of commits

    • 🎨 🔥 #c4fd8a - set webpack environment and remove gulp/express/browserify
    • 🎨 🔥 #056633 - remove/adapt the handle function with ES6 standart #14
    • ⚡️ #b8667e - add Intersection Observer to check if element is visible
    • 🎨 🚚 #9ea196 - full restructuration of simpleParallax architecture
    • 🎨 #ba6609 - add prettier pre-commit with Husky and Lint Staged
    • ⚡️ #876347 - every new instance of parallax won't create a new Request Animation Frame if there is already an existing one
    • 🐛 #af10cc - fix an issue when destroy method was destroying all instances of simpleParallax - even instances that were not in the initial instance to removed
    • 💥 🔥 #a3c190 - remove IE polyfill - no more IE11 support
    • #cc8480 - you can now choose 4 new orientations - "up left", "up right", "down left" and "down right"
    • ♿️ #b8e1bb - add support back for old browser that doesn't support Intersection Observer API
    Source code(tar.gz)
    Source code(zip)
  • 5.0.0beta(May 21, 2019)

    This is the first beta release of simpleParallax version 5.0.0

    Here what has changed since 5.0.0alpha

    • optimisation has been done with the Request Animation Frame. Now if you create a new parallax instance after you already created one before, this will be added in the same animation frame to gain performance. Really useful when you want different orientations of parallax in the same page.
    • destroy method has been rework to match with Request Animation Frame rework above and only destroy the instance you referred to.
    • no more IE11 support, polyfills have been removed. IE was never able to render the parallax effect properly anyway. If you still want to ensure compatibility to IE11, use the version 4.2.1.
    • 4 new orientations have been added - up left, up right, down left, and down right.
    • support for browsers than don't support Intersection Observer API has been provided.

    List of commits

    • #876347 - ⚡️ every new instance of parallax won't create a new Request Animation Frame if there is already an existing one
    • #af10cc - 🐛 fix an issue when destroy method was destroying all instances of simpleParallax - even instances that were not in the initial instance to removed
    • #a3c190 - 💥 🔥 remove IE polyfill - no more IE11 support
    • #cc8480 - ✨ you can now choose 4 new orientations - "up left", "up right", "down left" and "down right"
    • #b8e1bb - ♿️ add support back for old browser that doesn't support Intersection Observer API
    Source code(tar.gz)
    Source code(zip)
  • 5.0.0alpha(May 15, 2019)

    This is the first alpha release of simpleParallax version 5.0.0

    • This release is a full re-think and re-work of the architecture.
    • Gulp is not used anymore and has been replaced by Webpack and its libraryTarget set as UMD.
    • We now have a global simpleParallax container that initiates as many as you want instances of each parallax image. The controller and the instance are separated in two different files.
    • simpleParallax is now using the Intersection Observer API to check is an element is visible or not.
    • Destroy method has been simplified.
    • Breakpoint setting is now taking into consideration when user resize the window.

    List of commits

    • 🎨 🔥 #c4fd8a - set webpack environment and remove gulp/express/browserify
    • 🎨 🔥 #056633 - remove/adapt the handle function with ES6 standart #14
    • ⚡️ #b8667e - add Intersection Observer to check if element is visible
    • 🎨 🚚 #9ea196 - full restructuration of simpleParallax architecture
    • 🎨 #ba6609 - add prettier pre-commit with Husky and Lint Staged
    Source code(tar.gz)
    Source code(zip)
  • 4.2.1(Mar 9, 2019)

  • 4.2.0(Mar 5, 2019)

    This release fix one major issue and improve performance and stability.

    Now even if you have a dozen of parallax images on the same page, they will all get proceed with the same request animation frame. The scripting task has been reduce by 4.

    Also, sometime the image went out of its container due to a wrong order of transform CSS. This issue exists since version 1 and give some hard time to solve it.

    • :zap: #2ace14 - use animationFrame/getViewportOffset only once for all instances
    • :zap: #8be0a8c - get translated value on init even if this current instance is not visible
    • :zap: #e86ea09 - removed unrelevant gap for isVisible method
    • :bug: #169314 - fix an issue where the image get parallax out of its original container
    • :zap: #11 - Change internal behavior of some functions now that we're reusing RAF

    Contributor

    Source code(tar.gz)
    Source code(zip)
  • 4.1.1(Mar 3, 2019)

  • 4.1.0(Mar 1, 2019)

  • 4.0.0(Jan 7, 2019)

    🎉🎉 This release remove jQuery dependency and use Vanilla JS and ES6 instead. 🎉🎉

    Careful, from now you need to use this syntax:

    var images = document.querySelectorAll('.thumbnail');
    new simpleParallax(images, {
        delay: 0, 
        orientation: 'down', 
        scale: 1.30, 
        overflow: true 
    });
    

    Old syntax will no work anymore.

    Source code(tar.gz)
    Source code(zip)
  • 3.1.3(Oct 9, 2018)

  • 3.1.2(Oct 7, 2018)

  • 3.1.1(Sep 25, 2018)

    This release fix an issue when the parent of the element was in relative position. The offset was miscalulating.

    • #e63a52 - use getBoundingClientRect to avoid issue when parent is relative

    • #8ea89c - add a image.complete check before init

    Source code(tar.gz)
    Source code(zip)
  • 3.1.0(Sep 14, 2018)

    This release improves the stability of the plugin. There is no more issue when simpleParallax has been initialized before loading the image. Also the resize of the window has been improved to recalculate the offset. simpleParallax is now working on IE11.

    • #18b97ce - fix issue when init was occuring before image was loaded
    • #a1d43c - fix issue when resize event didn't recalculate the offset
    • #4637d9e - fix issue when isInitialized was not properly used
    • #67b2e4a - increase gap for very fast scroll down action in first view
    • #86cdd9 - add closest polyfill for IE11 support
    • #16b0bb - fix issue with load event with picture and srcset
    Source code(tar.gz)
    Source code(zip)
  • 3.0.0(Sep 9, 2018)

    This release is mostly about improving the perfomance. Some unnecessary and redundant calculation has been optimized. Two options have been added: breakpoint and transition. Gulp workflow has been completely reviewed. Now using gulp 4 and Babel. The logo and the demo site have been updated.

    • #7f19d9f - update gulp workflow
    • #09d9cef - add breakpoint params
    • #f7acb0d4 - create getViewportOffsetHeight and getViewportOffsetBottom to improve perfomance - add resize event to recalculate coordonates
    • #b36de01 - put getElementOffset into the init mehtod instead of proceedLoop
    • #537470 - fix an issue when height was miscalculating and induce wrong range in mobile
    • #fa6d630 - change occurance as a global var
    • #894ef0b - add gap in isVisible check + change scale default value
    • #09d9cef - change header typo
    • #a706b776 - change the overflow setting to false by default
    • #4b67693 - add transition setting
    • #0a7216e - put the orientation check in the init method
    • #09d9cef - add comment for each action + review logic when overflow is set to true
    • #707ae69 - review Logic - create setStyle function - remove unnecessary range calculation - replace jquery to Vanilla for core method - add comment
    Source code(tar.gz)
    Source code(zip)
  • 2.5.0(Aug 13, 2018)

    This release add an overflow parameter. By default overflow is set to true, this means that a scale will be apply to the image in order to translate it without scale the container of this image. To make it simple, the image will have a parallax effect without affecting it's initial position and overflow. (this is what simpleParallax do from the beginning) If the overflow parameter is set to false, there is no more scale on the image. The scale will be use to calculate the range of the image translation. Then the image will translate out of it's container.

    • #9031da5 - add will-change css property
    Source code(tar.gz)
    Source code(zip)
  • 2.4.0(Jun 20, 2018)

    This release add a delay parameter to add some delay effect when parallax animations occurs. Really nice :) This release also improves overall perfomance by adding will-change CSS property so that the browser can anticipate transition and gives a smoother effect.

    improvements

    • #dd3c2e - add will-change css property
    • #42aad3 - add will-change css property
    Source code(tar.gz)
    Source code(zip)
  • 2.3.0(Apr 4, 2018)

    This release improves perfomance by using CSS Hardware Acceleration. TranslateX and translateY have been change to translate3D.

    improvements

    • #d8cf95 - use CSS hardware acceleration for animations
    Source code(tar.gz)
    Source code(zip)
  • 2.2.1(Mar 19, 2018)

    This is a patch to prevent the plugin to not get the offset top position of the element when some position (relative) was set/not set.

    fix

    • #186c47 - fix issue when sometime the offset top was equal to 0 when position not set
    Source code(tar.gz)
    Source code(zip)
  • 2.2.0(Mar 15, 2018)

    This release is about performance improvement. A lot of work has been done to decrease the scripting/rendering/painting job during parallax execution. The Init function have been optimized too. Destruction method is now available.

    improvements

    • #7ede6d - minor syntax optim
    • #3fed4c - round percentage to the nearest 0.1 to increase perfomance
    • #ffe750 - viewport top var global to gain some time during proceedLoop method
    • #fac67e - remove unnecessary proceedElement method during init
    • #fc61ad - remove jquery data to compare old percentage with new
    • #635ee7 - minor syntax/logic improvements

    features

    • #4adb52 - destroy method implementation
    Source code(tar.gz)
    Source code(zip)
Lightweight, vanilla javascript parallax library

RELLAX Rellax is a buttery smooth, super lightweight, vanilla javascript parallax library. Update: Rellax now works on mobile (v1.0.0). Demo Website G

Dixon & Moe 6.7k Dec 30, 2022
Simple & lightweight (<4kb gzipped) vanilla JavaScript library to create smooth & beautiful animations when you scroll.

lax.js Simple & lightweight (<4kb gzipped) vanilla JavaScript library to create smooth & beautiful animations when you scroll. >> DEMO << What's new w

Alex Fox 9.4k Dec 29, 2022
Parallax Engine that reacts to the orientation of a smart device

Parallax Engine that reacts to the orientation of a smart device. Where no gyroscope or motion detection hardware is available, the position of the cu

Matthew Wagerfield 16k Jan 8, 2023
Stellar.js - Parallax scrolling made easy

Stellar.js PLEASE NOTE: This project is no longer maintained. If parallax scrolling is something you care about, please apply to become a contributor

Mark Dalgleish 4.6k Dec 10, 2022
jQuery plugin for creating interactive parallax effect

jquery.parallax What does jquery.parallax do? jquery.parallax turns nodes into absolutely positioned layers that move in response to the mouse. Depend

stephband 1.1k Nov 25, 2022
🛤 Detection of elements in viewport & smooth scrolling with parallax.

Locomotive Scroll Detection of elements in viewport & smooth scrolling with parallax effects. Installation ⚠️ Scroll-hijacking is a controversial prac

Locomotive 5.9k Dec 31, 2022
🚀 Scroll Follow Tab is a lightweight javascript library without jQuery, no dependencies.

Scroll Follow Tab is a lightweight javascript library without jQuery, no dependencies. It is used to make scrollspy effect for your menu, table of contents, etc. Only 21.7Kb.

Hieu Truong 11 Jun 20, 2022
A simple and fast API to monitor elements as you scroll

scrollMonitor The scroll monitor allows you to receive events when elements enter or exit a viewport. It does this using watcher objects, which watch

Stu Kabakoff 3.3k Jan 4, 2023
fullPage plugin by Alvaro Trigo. Create full screen pages fast and simple

fullPage.js English | Español | Français | Pусский | 中文 | 한국어 Available for Vue, React and Angular. | 7Kb gziped | Created by @imac2 Demo online | Cod

Álvaro 34.3k Jan 4, 2023
Dragscroll is a micro library for drag-n-drop scrolling style

Dragscroll is a micro JavaScript library (910 bytes minified) which enables scrolling via holding the mouse button ("drag and drop" or "click and hold" style, online demo). It has no dependencies and is written in vanilla JavaScript (which means it works anywhere).

Dmitry Prokashev 1.1k Dec 21, 2022
🚀 Performance focused, lightweight scroll animation library 🚀

Sal Performance focused, lightweight (less than 2.8 kb) scroll animation library, written in vanilla JavaScript. No dependencies! Sal (Scroll Animatio

Mirek Ciastek 3.4k Dec 28, 2022
Customizable, Pluginable, and High-Performance JavaScript-Based Scrollbar Solution.

Smooth Scrollbar Customizable, Flexible, and High Performance Scrollbars! Installation ⚠️ DO NOT use custom scrollbars unless you know what you are do

Daofeng Wu 3k Jan 1, 2023
Scroll-stash - A JavaScript plugin to help preserve an element's scroll position.

scroll-stash A JavaScript plugin to help preserve an element's scroll position. CodePen Example Installation npm install scroll-stash JavaScript Impo

Sebastian Nitu 5 Sep 5, 2022
Cubic-bezier implementation for your JavaScript animation easings – MIT License

BezierEasing provides Cubic Bezier Curve easing which generalizes easing functions (ease-in, ease-out, ease-in-out, ...any other custom curve) exactly like in CSS Transitions.

@greweb 1.6k Dec 27, 2022
Playful and Colorful One-Page portfolio featuring Parallax effects and animations. Especially designers and/or photographers will love this theme! Built with MDX and Theme UI.

Gatsby Starter Portfolio: Cara Playful and Colorful One-Page portfolio featuring Parallax effects and animations. Using the Gatsby Theme @lekoarts/gat

prashanth s 1 Dec 24, 2021
A tiny JavaScript library to easily toggle the state of any HTML element in any contexts, and create UI components in no time.

A tiny JavaScript library to easily toggle the state of any HTML element in any contexts, and create UI components in no time. Dropdown, navigation bu

Matthieu Bué 277 Nov 25, 2022
A tiny JavaScript library to enable CSS animations when user scrolls.

A tiny JavaScript library to enable CSS animations when user scrolls. This library allows you to toggle one or more classes on an element when it appe

Matthieu Bué 35 Nov 24, 2022
Simple JavaScript Library to add parallax image to background-image

Backpax Simple JavaScript Library to add parallax image to background-image Install $ npm install backpax --save Demo Demo page is here Usage If you

appleple 13 Oct 12, 2022
Chakra UI Animations is a dependancy which offers you pre-built animations for your Chakra UI components.

Chakra UI Animations Chakra UI Animations is a dependancy which offers you pre-built animations for your Chakra UI components. Installation yarn add @

Code Chemistry Inc. 9 Nov 19, 2022