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
251
decreased by-12.24%
Maintainers
1
Install size
25.7 kB
Created
Weekly downloads
 

Readme

Source


Ukiyo.js

Simple and lightweight JavaScript library for modern background parallax,
with support 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@3.0.3/dist/ukiyo.min.js"></script>

Import Ukiyo.js:

import Ukiyo from "ukiyojs";

Usage

HTML

Give the element you want to parallax a cool name 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

const image = document.querySelector('.ukiyo');

new Ukiyo(image)

You are now ready to go.

If you want to apply it to more than one element, you need to loop through them as follows:

const images = document.querySelectorAll(".ukiyo");
// You can do the loop in any way you like.
images.forEach(image => {
  new Ukiyo(image, {
    speed: 2,
    scale: 1.25
  });
});

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.

These can be configured with the following JS 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"
})

Element Options

These options can be set individually for an element using the data-u-* attribute:

<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.

Methods

reset()

Reset the instance and recalculate the size and position of the elements etc :

const image = document.querySelector('.image');
const instance = new Ukiyo(image);

instance.reset();

destroy()

Destroy instance:

const image = document.querySelector('.image');
const instance = new Ukiyo(image);

instance.destroy();

Browser Support

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

To support older browsers such as IE, you will need to use the Intersection Observer API, Promise and closest() polyfills. If you use img tag, you will also need to use the object-fit polyfill. (Only for v1.0.0. Starting from v2.0.0, it is automatically disabled for use with IE.)

However, please note that even with polyfill, the Parallax animation does not run smoothly in IE.

License

MIT License

Keywords

FAQs

Last updated on 11 Aug 2022

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc