npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

parallax-react-js

v1.0.14

Published

A libary for managing scroll speed of different components in react.

Downloads

39

Readme

parallax-react-js

Table of contents

  1. Introduction
  2. Installation
  3. Usage
  4. License

Introduction

Description

A libary for managing scroll speed of different components in react.

I recently found myself creating a site in react together with a friend of mine (Max Lukonin) and wanting to implement a parallax effect. We tried a few different libaries, pure css and everything else but it just did not work.

So we decided to create our own libary.

Shoutout to Max Lukonin

This project is a collaboration between me (Instagram, Github) and Max Lukonin (Instagram, Github). He's a very talented guy. Check out his other project playretrogames.net (Website) where you can play all kinds of fun retro games. I personally recommend mario kart :D

Installation

Using npm

You can install parallax-react-js normally through npm:

npm install parallax-react-js

Manual installation

Alternatively you can also install parallax-react-js directyl from the source code:

  1. clone the repository withgit clone https://github.com/juliuswaldmann/parallax-react-js.git
  2. open a terminal inside of the repository folder.
  3. compile the package withnpm run build
  4. runnpm pack to create a .tgz file of the package (npm link DOES NOT work. You have to usenpm pack).
  5. go to the project folder you want to install the package to and open a terminal.
  6. runnpm install TARBALL whereTARBALL is the path to the .tgz filenpm pack created.

Usage

gif

Import

parallax-react-js exposes two components: ParallaxContainer and ParallaxLayer. To use them just import them like this:

import {ParallaxContainer, ParallaxLayer} from 'parallax-react-js';

Creating a parallax effect

ParallaxContainer must be the scrollable element. To create a parallax effect you must wrapp your ParallaxLayers with ParallaxContainer

import {ParallaxContainer, ParallaxLayer} from 'parallax-react-js';

function Site () {

  return (
    <div className="Site">  
      <ParallaxContainer> //Wrapp your ParallaxLayers in ParallaxContainer. 
  
        //Each ParallaxLayer can have it's own children, own speed and own zIndex.
        <ParallaxLayer> //fist layer
          //Your children of the first layer
          //...
        </ParallaxLayer>
    
        <ParallaxLayer> //second layer
          //Your children of the second layer
          //...
        </ParallaxLayer>
        //...
      </ParallaxContainer>
    </div>
  )

}

Scroll speed

If you've followed along you may have noticed that each Layer just scrolls at the usual scroll speed. This is because we haven't provided a "speed" value yet.

  //...
  <ParallaxContainer>
      <ParallaxLayer speed="120%"> //this layer has a scroll speed of 120%
        //...
      </ParallaxLayer>
      <ParallaxLayer speed="80%"> //this layer has a scroll speed of 80%
        //...
      </ParallaxLayer
   </ParallaxContainer>
   //...

As you can see the "speed" value is a percentage that describes the scroll speed of the children realtive to the normal scroll speed. A ParallaxLayer with a speed value of 120% percent scrolls 1.2 times faster than normal, a layer with the speed value 50% scrolls half as fast. The scroll value defaults to 100% (normal scroll speed). You can also provide negative values for some really strange behaviour :D.

zIndex

But what if we want to specify which elements are in the front and which are in the back? We have a solution for that! You can just provide a "zIndex" value.

  //...
      <ParallaxLayer speed="80%" zIndex={2}> //this layer has a zIndex of 2
        //...
      </ParallaxLayer>
  //...

If you are familiar with css you may know z-index. It specifies which elements are on top of whith. zIndex specifies the z-index of the ParallaxLayer main div. The higher the zIndex value the "more in front" the element is. If one Layer has a zIndex of -1 and another a zIndex of 0 the one with the zIndex of 0 is in front. If another one has a zIndex of 2 that one is even more in front. If you don't provide a zIndex the value defaults to 0 (just like in css)

License

This code is licensed under the MIT license. For further Information read the LICENSE file.

MIT Licensed. Copyright (c) Julius Waldmann & Max Lukonin 2021.