vue-grid-layout
vue-grid-layout is a grid layout system, like Gridster, for Vue.js. Heavily inspired in React-Grid-Layout
Current version: 2.1.2 (Supports Vue 2.0+)
1.0.0
For Vue 1 use versionProjects using vue-grid-layout
Know of others? Create a PR to let me know!
Features
- Draggable widgets
- Resizable widgets
- Bounds checking for dragging and resizing
- Widgets may be added or removed without rebuilding grid
- Layout can be serialized and restored
- Automatic RTL support
Installation
Install the vue-grid-layout package package using npm:
npm install vue-grid-layout
Usage
npm install vue-grid-layout
or include the script in your html (download from releases):
var testLayout = "x":0"y":0"w":2"h":2"i":"0" "x":2"y":0"w":2"h":4"i":"1" "x":4"y":0"w":2"h":5"i":"2" "x":6"y":0"w":2"h":3"i":"3" "x":8"y":0"w":2"h":3"i":"4" "x":10"y":0"w":2"h":3"i":"5" "x":0"y":5"w":2"h":5"i":"6" "x":2"y":5"w":2"h":5"i":"7" "x":4"y":5"w":2"h":5"i":"8" "x":6"y":4"w":2"h":4"i":"9" "x":8"y":4"w":2"h":4"i":"10" "x":10"y":4"w":2"h":4"i":"11" "x":0"y":10"w":2"h":5"i":"12" "x":2"y":10"w":2"h":5"i":"13" "x":4"y":8"w":2"h":4"i":"14" "x":6"y":8"w":2"h":4"i":"15" "x":8"y":10"w":2"h":5"i":"16" "x":10"y":4"w":2"h":2"i":"17" "x":0"y":9"w":2"h":3"i":"18" "x":2"y":6"w":2"h":2"i":"19" ; var GridLayout = VueGridLayoutGridLayout; var GridItem = VueGridLayoutGridItem; el: '#app' components: GridLayout GridItem data: layout: testLayout ;
{{item.i}}
Events
Move and resize event listeners can be added to each grid-item, so that the parent Vue can be notified when a grid element is being moved or resized. Moved and resized event listeners can be added, if the only notification needed is when an item is finished moving or resizing.
Working example here
{{item.i}}
- Move event: every time an item is being moved and changes position
{ console; }
- Resize event: every time an item is being resized and changes size
{ console; }
- Moved event: every time an item is finished being moved and changes position
{ console; }
- Resized event: every time an item is finished being resized and changes size
{ console; }
Contribute
If you have a feature request, please add it as an issue or make a pull request.
TODO List
- Basic grid layout
- Responsive
- Draggable grid items
- Resizable grid items
- Static elements
- Min/max w/h per item