Skip to content

Drag and drop with angular using directives and HTML5

License

Notifications You must be signed in to change notification settings

wtz/angular-drag-drop

 
 

Repository files navigation

Angular - Drag and Drop

Lightweight drag and drop with angular using directives and HTML5

2.6kb minified, 0,54kb gzipped

See example page for setup

Install

With bower:

$ bower install angular-dragndrop

Controller

angular.module('myApp', ['dragAndDrop'])
.controller('MyCntrl', function($scope){

	$scope.cars = [ 
		{ name : 'Volvo' 	}, 
		{ name : 'Audi' 	}, 
		{ name : 'BMW' 		}, 
		{ name : 'Mercedes'	} 
	];

	$scope.sold = [ { name : 'Volvo' } ]; 

	$scope.moveToSold = function(car, element) {
		var index = $scope.cars.indexOf(car);
		$scope.cars.splice(index, 1);
		$scope.sold.push(car);
	};

});

Drop

<div drop="moveToSold">
	<div ng-repeat="car in sold">{{ car.name }}</div>
<div>

Options
drop - Takes a function thats called when drag is dropped
enter - Takes a function thats called when drag enters drop-area
leave - Takes a function thats called when drag leaves drop-area

Drag

<div ng-repeat="car in cars" drag ng-model="car">{{ car.name }}<div>

Options
ng-model * - Context of the current drag item.
start - Takes a function to be called when drag starts
end - Takes a function to be called when drag ends

Exampel of usage

CSS

Drag element
.drag

When drag element hovers another drag element
.drag.hover

When .drag is being dragged
.drag.dragging

Drop area
.drop

When .drag is being dragged appended to .drop
.drop.dropable

When drag element hovers a drop element
.drop.dropable.hover

Building

$ grunt

About

Drag and drop with angular using directives and HTML5

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HTML 86.7%
  • JavaScript 7.2%
  • CSS 6.1%