Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

hilongjw/vue-dragging

Repository files navigation

Awe-dnd

Makes your elements draggable in Vue.

See Demo: http://hilongjw.github.io/vue-dragging/

Some of goals of this project worth noting include:

  • support desktop and mobile
  • Vue data-driven philosophy
  • support multi comb drag
  • Supports both of Vue 1.0 and Vue 2.0

Requirements

  • Vue: ^1.0.0 or ^2.0.0

Install

From npm:

$ npm install awe-dnd --save

Usage

//main.js
import VueDND from 'awe-dnd'
Vue.use(VueDND)
<!--your.vue-->
<script>
export default {
 data () {
 return {
 colors: [{
 text: "Aquamarine"
 }, {
 text: "Hotpink"
 }, {
 text: "Gold"
 }, {
 text: "Crimson"
 }, {
 text: "Blueviolet"
 }, {
 text: "Lightblue"
 }, {
 text: "Cornflowerblue"
 }, {
 text: "Skyblue"
 }, {
 text: "Burlywood"
 }]
 }
 },
 /* if your need multi drag
 mounted: function() {
 this.colors.forEach((item) => {
 Vue.set(item, 'isComb', false)
 })
 } */
}
</script>
<template>
 <div class="color-list">
 <div
 class="color-item"
 v-for="color in colors" v-dragging="{ item: color, list: colors, group: 'color' }"
 :key="color.text"
 >{{color.text}}</div>
 </div>
</template>

API

v-dragging="{ item: color, list: colors, group: 'color' }"

Arguments:

  • {item} Object
  • {list} Array
  • {group} String
  • {comb} String

group is unique key of dragable list.

comb use for multi drag

Example

<!-- Vue2.0 -->
<div class="color-list">
 <div
 class="color-item"
 v-for="color in colors" v-dragging="{ item: color, list: colors, group: 'color' }"
 :key="color.text"
 >{{color.text}}</div>
</div>
<!-- Vue1.0 -->
<div class="color-list">
 <div
 class="color-item"
 v-for="color in colors" v-dragging="{ item: color, list: colors, group: 'color', key: color.text }"
 track-by="text"
 >{{color.text}}</div>
</div>

Event

<div class="color-list">
 <div
 class="color-item"
 v-for="color in colors" v-dragging="{ item: color, list: colors, group: 'color', otherData: otherData, comb: 'isComb' }"
 :key="color.text"
 >{{color.text}}</div>
</div>
export default {
 mounted () {
 this.$dragging.$on('dragged', ({ value }) => {
 console.log(value.item)
 console.log(value.list)
 console.log(value.otherData)
 })
 this.$dragging.$on('dragend', () => {
 })
 }
}

License

The MIT License

About

A sortable list directive with Vue

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5

AltStyle によって変換されたページ (->オリジナル) /