Advanced Vue Drag-and-drop Component-Based On Sortable.js

A Vue Dragable (Vue.js 2.0) or directive (Vue.js 1.0) component that allows drag-and-drop and synchronization with the view model. Based on and providing all the features of Sortable.js.

Features

  • Full support of Sortable.js features:
    • Supports touch devices
    • Supports drag handles and selectable text
    • Smart auto-scrolling
    • Support drag and drop between different lists
    • No jQuery dependency
  • Keeps in sync HTML and views a model list
  • Compatible with Vue.js 2.0 transition-group
  • Cancellation support
  • Events reporting any changes when full control is needed
  • Reuse existing UI library components (such as vuetify, element, or vue material, etc…) and make them draggable using tag and componentData props

Must Read: Create and Reorder Lists With Drag-and-Drop | SortableJS

Vue Drag-and-Drop Component Based On Sortable.js

Post NameVue Draggable Component JS
Author NameSortableJS
CategoryDraggable, Vue
Official PageClick Here | Click Here
Official Websitegithub.com
Publish DateMarch 3, 2022
Last UpdateJuly 29, 2023
DownloadLink Below
LicenseMIT

How to make use of it:

Install & Download:

yarn add vuedraggable

npm i -S vuedraggable

Use draggable component:

<draggable v-model="myArray" group="people" @start="drag=true" @end="drag=false">
   <div v-for="element in myArray" :key="element.id">{{element.name}}</div>
</draggable>
import draggable from 'vuedraggable'
 ...
 export default {
       components: {
           draggable,
       },
 ...

Event object has the same property as the Sortable onMove event, and 3 additional properties:

  • draggedContext: context linked to dragged element
    • index: dragged element index
    • element: dragged element underlying view model element
    • futureIndex: potential index of the dragged element if the drop operation is accepted
  • relatedContext: context linked to the current drag operation
    • index: target element index
    • element: target element view model element
    • list: target list
    • component: target VueComponent

See Demo And Download

vue-draggable-component-js

Official Website(SortableJS): Click Here

This superior jQuery/javascript plugin is developed by SortableJS. For extra Advanced Usage, please go to the official website.

Related Posts

Google-Translate-Dropdown-Customize-With-Country-Flag

Google Translate Dropdown Customize With Country Flag | GT API

Flag google translates jQuery text that takes advantage of the Google Cloud Translation API to translate web content between languages by selecting a country from the dropdown…

Bootstrap-Fileinput

HTML 5 File Input Optimized for Bootstrap 4.x./3.x with File Preview | Bootstrap Fileinput

bootstrap-fileinput is an improved HTML 5 file input  Bootstrap 5.x, 4.x and 3.x with file preview for different files, provides multiple selections, resumable section uploads, and more….

HStack-and-VStack-in-CSS

CSS Layout Components Horizontal/Vertical Stack | HStack and VStack

HStack and VStack in CSS – CSS layout components that (basically) stack anything horizontally and vertically. A pure CSS library that makes it easy to stack elements…

Floating-Whatsapp-Chat-Button

How to Add Floating Whatsapp Chat Button In HTML | venom-button

Venom Button is a very simple plugin for the jQuery floating WhatsApp button. Adds a floating button to your site that calls WhatsApp Click to Chat API. It will automatically start the WhatsApp…

Data-Table-Generator-Tabulator

Interactive Data Table Generator with JS/jQuery and JSON | Tabulator

Tabulator allows you to create interactive tables in seconds from any HTML Table, JavaScript array, AJAX data source, or JSON format data. Just include the library in your…

alert-confirm-prompt-attention-js

Simple Alert, Confirm, Prompt Popup Using Vanilla JavaScript Library | attention.js

JavaScript provides various built-in functionality to display popup messages for different purposes. Attention JS is a vanillaJS plugin used to create a custom alert, confirm, or Prompt…

Leave a Reply

Your email address will not be published. Required fields are marked *