Socket
Socket
Sign inDemoInstall

ukiyojs

Package Overview
Dependencies
0
Maintainers
1
Versions
28
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    ukiyojs

Modern parallax library for picture elements and any images


Version published
Weekly downloads
258
decreased by-18.61%
Maintainers
1
Install size
33.5 kB
Created
Weekly downloads
 

Readme

Source

Ukiyo.js
Ukiyo.js

Modern parallax library for picture elements and any images

⛰️
DEMO


Installation

You can install the library via npm/yarn:

npm install ukiyojs
yarn add ukiyojs

or via CDN:

<script src="https://cdn.jsdelivr.net/npm/ukiyojs@4.1.1/dist/ukiyo.min.js"></script>

Import Ukiyo.js:

import Ukiyo from "ukiyojs";

Usage

HTML

Give the element you want to parallax a cool name in order to call it in JavaScript.

🏞 <img>
<img class="ukiyo" src="image.jpg">
🏞 <picture>
<picture>
  <source srcset="~">
  <img class="ukiyo" src="image.jpg">
<picture>

picture tag element is also supported: set the parallax to the img tag inside the picture tag.

📺 <video>
<video class="ukiyo" src="~" type="~">
🖼️ Using background-image
<div class="ukiyo"></div>

Don't forget the styling of background-image on element.

JavaScript

To instantiate Ukiyo, the first argument should specify the element to be parallaxed.

// CSS selector
new Ukiyo(".ukiyo")

// or node
const images = document.querySelectorAll(".ukiyo")
new Ukiyo(images)

// or HTMLCollection
const images = document.getElementsByClassName('ukiyo');
new simpleParallax(images);

You are now ready to go.

Options

OptionTypeDefaultDescription
scalenumber1.5Parallax image scaling factor.
speednumber1.5Parallax speed.
willChangebooleanfalseIf true, the element will be given a will-change: transform when Parallax is active.
wrapperClassstringnullClass name of the automatically generated wrapper element.
externalRAFbooleanfalseUse external requestAnimationFrame

These configurations can be made with the following JavaScript code:

const parallax = document.querySelector('.image')

new Ukiyo(parallax, {
    scale: 1.5, // 1~2 is recommended
    speed: 1.5, // 1~2 is recommended
    willChange: true, // This may not be valid in all cases
    wrapperClass: "ukiyo-wrapper",
    externalRAF: false
})

Element Options

These options can be individually set for an element using the data-u-* attribute, as shown in the following example:

<img
  data-u-scale="2"
  data-u-speed="1.7"
  data-u-wrapper-class="wrapper-name"
  data-u-willchange
>
AttributeValuesDescription
data-u-scalenumberscale option.
data-u-speednumberspeed option.
data-u-willchangewillChange option. Simply attach it to the element to make it valid.
data-u-wrapper-classstringwrapperClass option.

Option names start with data-u-*. Don't forget to prefix the option name with a "u", if u do.

Using external requestAnimationFrame

By default, parallax animations are automatically depicted in a requestAnimationFrame, but animations can also be called in an external requestAnimationFrame.

const parallax = new Ukiyo(".ukiyo", {
  externalRAF: true
})

function raf(time) {
  // animate parallax
  parallax.animate()

  requestAnimationFrame(raf)
}

requestAnimationFrame(raf)

To enable the externalRAF option, call the animation with the animate() method in the requestAnimationFrame process.

Methods

reset()

To reset the instance and recalculate the size and position of the elements, you can use the following code:

const instance = new Ukiyo(".image")

instance.reset()

destroy()

Destroy instance:

const instance = new Ukiyo(".image")

instance.destroy()

Browser Support

IEEdgeFirefoxChromeOperaSafariiOS Safari
❌No Support✅Latest✅Latest✅Latest✅Latest✅Latest✅Latest

Parallax animation is automatically disabled on browsers that do not support it.

License

MIT License

Keywords

FAQs

Last updated on 13 Jul 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc