jquery.tiny-draggable.js 1.0 KB

12345678910111213141516171819202122232425
  1. /*
  2. jQuery tinyDraggable v1.0.2
  3. Copyright (c) 2014 Simon Steinberger / Pixabay
  4. GitHub: https://github.com/Pixabay/jQuery-tinyDraggable
  5. More info: http://pixabay.com/blog/posts/p-52/
  6. License: http://www.opensource.org/licenses/mit-license.php
  7. */
  8. (function($){
  9. $.fn.tinyDraggable = function(options){
  10. var settings = $.extend({ handle: 0, exclude: 0 }, options);
  11. return this.each(function(){
  12. var dx, dy, el = $(this), handle = settings.handle ? $(settings.handle, el) : el;
  13. handle.on({
  14. mousedown: function(e){
  15. if (settings.exclude && ~$.inArray(e.target, $(settings.exclude, el))) return;
  16. e.preventDefault();
  17. var os = el.offset(); dx = e.pageX-os.left, dy = e.pageY-os.top;
  18. $(document).on('mousemove.drag', function(e){ el.offset({top: e.pageY-dy, left: e.pageX-dx}); });
  19. },
  20. mouseup: function(e){ $(document).off('mousemove.drag'); }
  21. });
  22. });
  23. }
  24. }(jQuery));