All Projects → joeattardi → svelte-click-outside

joeattardi / svelte-click-outside

Licence: MIT License
A wrapper component that provides click outside detection

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to svelte-click-outside

s-date-range-picker
📅 A date range picker built with Svelte
Stars: ✭ 13 (-53.57%)
Mutual labels:  sveltejs, svelte-v3, svelte3
hacker-feud
💥 A single page web game made with Svelte.
Stars: ✭ 61 (+117.86%)
Mutual labels:  sveltejs, svelte-v3, svelte3
svelte-meteor-data
Reactively track Meteor data inside Svelte components
Stars: ✭ 14 (-50%)
Mutual labels:  sveltejs, svelte-v3, svelte3
ui-svelte
A component library for Svelte
Stars: ✭ 18 (-35.71%)
Mutual labels:  sveltejs, svelte-v3, svelte3
svelte-progressbar
A multiseries, SVG progressbar component made with Svelte
Stars: ✭ 85 (+203.57%)
Mutual labels:  sveltejs, svelte-v3
svelte-interview-questions
Concepts and Questions related to Svelte - Part of official Svelte resources list
Stars: ✭ 18 (-35.71%)
Mutual labels:  sveltejs, svelte3
Svelte Material Ui
Svelte Material UI Components
Stars: ✭ 2,081 (+7332.14%)
Mutual labels:  sveltejs, svelte3
BeatHub
Small, simple, and fast custom beatmap browser & downloader built with Svelte
Stars: ✭ 13 (-53.57%)
Mutual labels:  svelte-v3, svelte3
svelte-express-boilerplate
Boilerplate for developing full stack apps with Express and Svelte.js 📦
Stars: ✭ 60 (+114.29%)
Mutual labels:  sveltejs, svelte-v3
svelte-headlessui
Unofficial Svelte port of Headless UI components
Stars: ✭ 564 (+1914.29%)
Mutual labels:  sveltejs, svelte3
svelte-color-picker
A color picker component for svelte
Stars: ✭ 96 (+242.86%)
Mutual labels:  sveltejs, svelte-v3
svelte-starter-kit
Svelte with brilliant bells and useful whistles
Stars: ✭ 384 (+1271.43%)
Mutual labels:  sveltejs, svelte3
svelte-webcomponents
A ready-to-use project template to build custom elements (web components) with Svelte 3 with support and examples for web components, jest, sass, nested components with props, eslinting, stylelinting, Github actions, propagating custom events from shadow-DOM to real-DOM etc.
Stars: ✭ 22 (-21.43%)
Mutual labels:  sveltejs, svelte3
svelte-ts-template
Typescript template for Svelte v3
Stars: ✭ 55 (+96.43%)
Mutual labels:  sveltejs, svelte-v3
svelte-portal
Svelte component for rendering outside the DOM of parent component
Stars: ✭ 261 (+832.14%)
Mutual labels:  sveltejs, svelte3
svelte-accessible-dialog
An accessible dialog component for Svelte apps
Stars: ✭ 24 (-14.29%)
Mutual labels:  sveltejs, svelte3
plate-app
🍛 What's on your Plate?
Stars: ✭ 49 (+75%)
Mutual labels:  sveltejs, svelte-v3
plugins
Elder.js plugins and community plugins.
Stars: ✭ 80 (+185.71%)
Mutual labels:  sveltejs
cv
My online CV using Svelte
Stars: ✭ 35 (+25%)
Mutual labels:  sveltejs
svelte-fa
Tiny FontAwesome 5 component for Svelte
Stars: ✭ 214 (+664.29%)
Mutual labels:  sveltejs

svelte-click-outside

Purpose

This is a small helper component that lets you listen for clicks outside of an element. For example, if you want to close a popup when the user clicks outside of it.

Installation

npm install --save svelte-click-outside

Basic Usage

Wrap the element in the <ClickOutside> component and listen for the clickoutside event:

  <script>
    function onClickOutside() {
      console.log('Clicked outside!');
    }
  </script>

  <ClickOutside on:clickoutside={onClickOutside}>
    <div>Click Outside Me</div>
  </ClickOutside>

Exclusions

By default, clicking on any element outside of the wrapped element will cause the event to trigger. You can specify excluded elements that will not trigger the event. For example, a button that triggers a popup must be excluded. Otherwise, it will immediately close the popup when it is opened.

The ClickOutside component has an exclude prop that expects an array of DOM nodes. Clicks on those nodes or their children will be ignored.

Example: Show/hide panel

  <script>
    import ClickOutside from 'svelte-click-outside';

    let triggerEl;
    let panelVisible = false;

    function togglePanel() {
      panelVisible = !panelVisible;
    }

    function hidePanel() {
      panelVisible = false;
    }
  </script>

  <button bind:this={triggerEl} on:click={togglePanel}>Click Me</button>

  <ClickOutside on:clickoutside={hidePanel} exclude={[triggerEl]}>
    <div hidden={!panelVisible}>I'm a panel!</div>
  </ClickOutside>
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].