Skip to content

Instantly share code, notes, and snippets.

@yuanchuan
Created November 1, 2011 08:27
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save yuanchuan/1330150 to your computer and use it in GitHub Desktop.
Save yuanchuan/1330150 to your computer and use it in GitHub Desktop.
simple draggable using jquery
/**
* usage:
* $('div').draggable();
* $('*').draggable();
*/
$.fn.draggable = function() {
var $document = $(document)
, mouse = { update: function(e) {this.x = e.pageX; this.y = e.pageY;} };
return this.each(function(){
var $elem = $(this);
$elem.bind('mousedown.drag', function(e) {
mouse.update(e);
if ( !/^(relative|absolute)$/.test($elem.css('position') ) ) {
$elem.css('position', 'relative');
}
$document.bind('mousemove.drag', function(e) {
$elem.css({
left: (parseInt($elem.css('left'))||0) + (e.pageX - mouse.x) + 'px',
top: (parseInt($elem.css('top'))||0) + (e.pageY - mouse.y) + 'px'
});
mouse.update(e);
e.preventDefault();
});
$document.one('mouseup.drag', function(e) {
$document.unbind('mousemove.drag');
});
e.preventDefault();
});
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment