1.0.3 • Published 3 years ago

@southmedia/popup v1.0.3

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

Popup

Lightweight JavaScript popup library

Installation and Usage

Install the library with npm install @southmedia/popup or yarn @southmedia/popup

ES6

import Popup from "@southmedia/popup"

Example

new Popup({
  popupSelector: "[data-popup-example]",
  triggerSelector: "[data-popup-example-trigger]",
  offsetElementsSelector: "[data-offset-popup]",
  beforeOpen: (event) => {
    console.log("before open", event.detail);
    const popup = event.detail.popup;
    const trigger = event.detail.trigger;
  },
  afterOpen: (event) => {
    console.log("after open", event.detail);
  },
  beforeClose: (event) => {
    console.log("before close", event.detail);
  },
  afterClose: (event) => {
    console.log("after close", event.detail);
  }
})

Options

NameTypeDefaultDescription
activeClassstring"opened"Opened popup active class
bodyClassstring-Body class then popup opened
popupSelectorstring-Popup selector. Required
triggerSelectorstring-Element selector click on will open popup
closeSelectorstring"data-popup-close"Element selector click on will close popup
lockScrollbooleantrueIf enabled: lock scroll on window and add margin by scrollbar width to prevent shaking
offsetElementsSelectorstring-Element selector to add right by scrollbar width. Useless when lockScroll: false.
animationDurationnumber600Transition duration (in ms)
animationManualbooleanfalseIf enabled: animation will need to be set manually

Events

NameDescription
beforeOpenEvent will be fired right before opened
afterOpenEvent will be fired right after opened
beforeCloseEvent will be fired right before closed
afterCloseEvent will be fired right after closed

Events have an argument "event", that contains popup and trigger that fired popup.

event.detail = {
  popup: element,
  trigger: element
}

Maintainers