Next Perpendicular Moonlanding

    draggerjs
    TypeScript icon, indicating that this package has built-in type declarations

    0.1.5 • Public • Published

    draggerjs

    is a pure vanila javascript without dependency which is use to drag and drop elements in easy and understabdable way.

    installation

    npm i draggerjs
    

    or

    yarn add draggerjs
    

    import to your project

    import Draggerjs from 'draggerjs'

    Options Props

    axis?: 'x' | 'y'; - if dragging is specifically only for x or y

    draggable?: string; - selector of draggable elements

    droppable?: string; - selector of droppable elements

    allowBoundContainer?: boolean; - when true the draggable elements will be bound to container

    allowExactTargetDraggable?: boolean; - when true the target you hold will be the draggable element

    autoscroll?: boolean; - when true it will auto scroll any scrollable container when you drag the element on the edge

    autoscrollSensitivity?: number; - the sensitivity of the edge scrolling; default 20

    eventListenerOption?: any - the option of the addEventListener and removeEventListener

    Methods

    destroy() - to destroy the event listner use in draggerjs

    Usage

    JAVASCRIPT

    const dragger = new Draggerjs('#drag-autoscroll', {
        draggable: '.draggable-box',
        autoscroll: true
    })
    
    dragger.on('dragstart', (e) => { 
        const target = e.target
        if(e.isDraggableElement) {
            // prevent mobile from scrolling
            // when dragging draggable element
            e.preventDefault()
            target.classList.add('grabbed')
            if(target.classList.contains('center')) {
                target.classList.remove('center')
            }
        }
    })
    
    dragger.on('dragend', (e) => {
        if(e.isDraggableElement) {  
            e.target.classList.remove('grabbed') 
        }
    })
    
    if('removeDraggerListener' === true) {
        dragger.destroy()
    }

    CSS

    .drag-container {  
        display: flex;
        flex-wrap: wrap;
        height: 250px;  
        position: relative;
    }
    .drag-long-ground {
        display: block;
        overflow: scroll;
        -webkit-overflow-scrolling: touch;
    }
    .drag-long-ground > .drag-around {
        width: 1250px;
        height: 1250px;
    }
    .drag-container > .drag-around {
        flex: 1 1;
        width: 100%; 
        border: 2px dashed #fff;
        border-radius: 15px;
        padding: 15px;
        transition: box-shadow 300ms ease-in;
    }
    .drag-container .draggable-box {
        display: inline-flex;
        justify-content: center;
        align-items: center;
        min-width: 50px;
        min-height: 50px;
        padding: 0 10px; 
        border-radius: 10px;
        transition: box-shadow 300ms ease-in;
        cursor: grab;
    }
    .drag-container .draggable-box > h1 { 
        margin-bottom: 5px;
    }
    .drag-container .grabbed {
        cursor: grabbing;
        margin: 0;
    }
    .draggable-box.center {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }

    HTML

    <div class="drag-container drag-long-ground" id="drag-autoscroll">  
        <div class="drag-around n-border-color">
            <div class="draggable-box center n-flat">
                <h1>Drag Me</h1>
            </div> 
        </div>
    </div>

    Install

    npm i draggerjs

    DownloadsWeekly Downloads

    46

    Version

    0.1.5

    License

    ISC

    Unpacked Size

    60.2 kB

    Total Files

    14

    Last publish

    Collaborators

    • mytabworks