/* * jqDnR - Minimalistic Drag'n'Resize for jQuery. * * Copyright (c) 2007 Brice Burgess , http://www.iceburg.net * Licensed under the MIT License: * http://www.opensource.org/licenses/mit-license.php * * $Version: 2007.08.19 +r2 */ /*jshint eqeqeq:false */ /*global jQuery, define */ (function( factory ) { "use strict"; if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. define([ "jquery" ], factory ); } else { // Browser globals factory( jQuery ); } } (function( $ ) { "use strict"; //module begin $.fn.jqDrag=function(h){return i(this,h,'d');}; $.fn.jqResize=function(h,ar){return i(this,h,'r',ar);}; $.jqDnR={ dnr:{}, e:0, drag:function(v){ if(M.k == 'd'){E.css({left:M.X+v.pageX-M.pX,top:M.Y+v.pageY-M.pY});} else { E.css({width:Math.max(v.pageX-M.pX+M.W,0),height:Math.max(v.pageY-M.pY+M.H,0)}); if(M1){E1.css({width:Math.max(v.pageX-M1.pX+M1.W,0),height:Math.max(v.pageY-M1.pY+M1.H,0)});} } return false; }, stop:function(){ //E.css('opacity',M.o); $(document).unbind('mousemove',J.drag).unbind('mouseup',J.stop); } }; var J=$.jqDnR,M=J.dnr,E=J.e,E1,M1, i=function(e,h,k,aR){ return e.each(function(){ h=(h)?$(h,e):e; h.bind('mousedown',{e:e,k:k},function(v){ var d=v.data,p={};E=d.e;E1 = aR ? $(aR) : false; // attempt utilization of dimensions plugin to fix IE issues if(E.css('position') != 'relative'){try{E.position(p);}catch(e){}} M={ X:p.left||f('left')||0, Y:p.top||f('top')||0, W:f('width')||E[0].scrollWidth||0, H:f('height')||E[0].scrollHeight||0, pX:v.pageX, pY:v.pageY, k:d.k //o:E.css('opacity') }; // also resize if(E1 && d.k != 'd'){ M1={ X:p.left||f1('left')||0, Y:p.top||f1('top')||0, W:E1[0].offsetWidth||f1('width')||0, H:E1[0].offsetHeight||f1('height')||0, pX:v.pageX, pY:v.pageY, k:d.k }; } else {M1 = false;} //E.css({opacity:0.8}); if($("input.hasDatepicker",E[0])[0]) { try {$("input.hasDatepicker",E[0]).datepicker('hide');}catch (dpe){} } $(document).mousemove($.jqDnR.drag).mouseup($.jqDnR.stop); return false; }); }); }, f=function(k){return parseInt(E.css(k),10)||false;}, f1=function(k){return parseInt(E1.css(k),10)||false;}; /* jQuery tinyDraggable v1.0.2 Copyright (c) 2014 Simon Steinberger / Pixabay GitHub: https://github.com/Pixabay/jQuery-tinyDraggable More info: https://pixabay.com/blog/posts/p-52/ License: http://www.opensource.org/licenses/mit-license.php */ $.fn.tinyDraggable = function(options){ var settings = $.extend({ handle: 0, exclude: 0 }, options); return this.each(function(){ var dx, dy, el = $(this), handle = settings.handle ? $(settings.handle, el) : el; handle.on({ mousedown: function(e){ if (settings.exclude && ~$.inArray(e.target, $(settings.exclude, el))) { return; } e.preventDefault(); var os = el.offset(); dx = e.pageX-os.left, dy = e.pageY-os.top; $(document).on('mousemove.drag', function(e){ el.offset({top: e.pageY-dy, left: e.pageX-dx}); }); }, mouseup: function(e){ $(document).off('mousemove.drag'); } }); }); }; //module end }));