Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hilongjw/vue-dragging

A sortable list directive with Vue
https://github.com/hilongjw/vue-dragging

vue

Last synced: 1 day ago
JSON representation

A sortable list directive with Vue

Awesome Lists containing this project

README

        

Awe-dnd
========
Makes your elements draggable in Vue.

![](https://github.com/hilongjw/vue-dragging/blob/master/preview.gif)

See Demo: [http://hilongjw.github.io/vue-dragging/](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:

``` sh

$ npm install awe-dnd --save

```

## Usage

``` javascript
//main.js

import VueDND from 'awe-dnd'

Vue.use(VueDND)
```

``` html

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)
})
} */
}


{{color.text}}

```

# 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

``` html


{{color.text}}


{{color.text}}


```

#### Event

``` html


{{color.text}}


```

``` javascript
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](http://opensource.org/licenses/MIT)