1.0.1 • Published 3 years ago

dynamic-drop-down-menu v1.0.1

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

Dynamic Dropdown menu

Create dropdown menus and listen to static (HTML) and dynamic dropdown menus

Table of Contents

Install

npm i dynamic-drop-down-menu

Usage

  1. Import components that you should use.
import {
  Dropdown,
  ClickoutDropdown,
  setupHTMLDropdowns
} from 'dynamic-drop-down-menu'
  1. (Optional) Import css file: css/dropdown.css (If you wanna test, you can import the css file in node_modules)

  2. Try!

// Creating dropdown
const dropdownRemove = Dropdown('Remove file', document.body, ['strings.txt', 'documents.txt', 'players.txt', 'users.json'])

// Adding event to dropdown items
dropdownRemove.addEventToItems('click', dropdownRemove.getItems(), (event) => {
  const confirmation = confirm(`You wanna remove ${event.target.textContent} file?`)
  if (confirmation) {
    event.target.remove()
    alert('File deleted!')
  }
})

// Auto close visible dropdown when clicks out.
ClickoutDropdown.listen()

// Loads all HTML dropdowns
setupHTMLDropdowns()

Components

NameDescriptionExample
DropdownCreates new dropdown elementDropdown("Button name", parentNode, itemsArray)
ClickoutDropdownModule Pattern that control what happens when click out of visible dropdownClickoutDropdown.listen()
setupHTMLDropdownsLoads all HTML dropdownssetupHTMLDropdowns()
getDropdownsReturn a list of all dropdownsgetDropdowns()
getVisibleDropdownsReturn a list of all visible dropdownsgetVisibleDropdowns()

Dropdown components

NameDescriptionExample
getDropdownDOMReturns dropdown elementdropdown.getDropdownDOM()
getContentDOMReturn dropdown contentdropdown.getContentDOM()
getButtonDOMReturn dropdown buttondropdown.getButtonDOM()
getItemsReturn dropdown itemsdropdown.getItems()
addItemAdd dropdown item by textdropdown.addItem("Dropdown item 3")
removeItemByTextRemove item by textdropdown.removeItemByText("Dropdown item 3")
removeItemByIndexRemove item by indexdropdown.removeItemByIndex(2)
addEventToItemsAdd event listener to selected dropdown itemsdropdown.addEventToItems("eventName", dropdown.getItems(), (event) => console.log(You clicked ${event.target.textContent}))

HTML Dropdown

You can create dropdown on HTML. See how:

  1. Create dropdown on HTML
<div class="drop-down">
  <button class="drop-down-button">Dropdown button</button>
  <ul class="drop-down-content">
    <li class="drop-down-item">Dropdown item 1></li>
    <li class="drop-down-item">Dropdown item 2</li>
    <li class="drop-down-item">Dropdown item 3</li>
  </ul>
</div>
  1. Enable dropdown listener using setupHTMLDropdowns
import {setupHTMLDropdowns} from 'dynamic-drop-down-menu'
setupHTMLDropdowns()

The Odin Project

This is a project to how publish package on npm.