mirror of
https://github.com/Shopify/draggable.git
synced 2026-01-25 16:02:36 +00:00
Collidable
When you use the collidable plugin you can specify which elements you can't drag over and it will freeze
the mirror movement for you. These currently only work with Sortable, Swappable and Droppable.
This plugin is not included by default, so make sure to import it before using.
Import
import {Plugins} from '@shopify/draggable';
import Collidable from '@shopify/draggable/lib/plugins/collidable';
<script src="https://cdn.jsdelivr.net/npm/@shopify/draggable@1.0.0-beta.3/lib/plugins.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@shopify/draggable@1.0.0-beta.3/lib/plugins/collidable.js"></script>
Options
collidables {String|HTMLElement[]|NodeList|HTMLElement|Function}
A css selector string, an array of elements, a NodeList, a HTMLElement or a function returning elements for collidable elements.
Events
| Name | Description | Cancelable | Cancelable action |
|---|---|---|---|
collidable:in |
Gets fired when dragging near a collidable element | false | - |
collidable:out |
Gets fired when dragging away from a collidable element | false | - |
Example
import {Sortable, Plugins} from '@shopify/draggable';
const sortable = new Sortable(document.querySelectorAll('ul'), {
draggable: 'li',
collidables: '.other-list',
plugins: [Plugins.Collidable]
});
sortable.on('collidable:in', () => console.log('collidable:in'));
sortable.on('collidable:out', () => console.log('collidable:out'));