jquery.resizable.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. /**
  2. * EasyUI for jQuery 1.6.10
  3. *
  4. * Copyright (c) 2009-2018 www.jeasyui.com. All rights reserved.
  5. *
  6. * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php
  7. * To use it on other terms please contact us: info@jeasyui.com
  8. *
  9. */
  10. (function($){
  11. function _1(e){
  12. var _2=e.data;
  13. var _3=$.data(_2.target,"resizable").options;
  14. if(_2.dir.indexOf("e")!=-1){
  15. var _4=_2.startWidth+e.pageX-_2.startX;
  16. _4=Math.min(Math.max(_4,_3.minWidth),_3.maxWidth);
  17. _2.width=_4;
  18. }
  19. if(_2.dir.indexOf("s")!=-1){
  20. var _5=_2.startHeight+e.pageY-_2.startY;
  21. _5=Math.min(Math.max(_5,_3.minHeight),_3.maxHeight);
  22. _2.height=_5;
  23. }
  24. if(_2.dir.indexOf("w")!=-1){
  25. var _4=_2.startWidth-e.pageX+_2.startX;
  26. _4=Math.min(Math.max(_4,_3.minWidth),_3.maxWidth);
  27. _2.width=_4;
  28. _2.left=_2.startLeft+_2.startWidth-_2.width;
  29. }
  30. if(_2.dir.indexOf("n")!=-1){
  31. var _5=_2.startHeight-e.pageY+_2.startY;
  32. _5=Math.min(Math.max(_5,_3.minHeight),_3.maxHeight);
  33. _2.height=_5;
  34. _2.top=_2.startTop+_2.startHeight-_2.height;
  35. }
  36. };
  37. function _6(e){
  38. var _7=e.data;
  39. var t=$(_7.target);
  40. t.css({left:_7.left,top:_7.top});
  41. if(t.outerWidth()!=_7.width){
  42. t._outerWidth(_7.width);
  43. }
  44. if(t.outerHeight()!=_7.height){
  45. t._outerHeight(_7.height);
  46. }
  47. };
  48. function _8(e){
  49. $.fn.resizable.isResizing=true;
  50. $.data(e.data.target,"resizable").options.onStartResize.call(e.data.target,e);
  51. return false;
  52. };
  53. function _9(e){
  54. _1(e);
  55. if($.data(e.data.target,"resizable").options.onResize.call(e.data.target,e)!=false){
  56. _6(e);
  57. }
  58. return false;
  59. };
  60. function _a(e){
  61. $.fn.resizable.isResizing=false;
  62. _1(e,true);
  63. _6(e);
  64. $.data(e.data.target,"resizable").options.onStopResize.call(e.data.target,e);
  65. $(document).unbind(".resizable");
  66. $("body").css("cursor","");
  67. return false;
  68. };
  69. function _b(e){
  70. var _c=$(e.data.target).resizable("options");
  71. var tt=$(e.data.target);
  72. var _d="";
  73. var _e=tt.offset();
  74. var _f=tt.outerWidth();
  75. var _10=tt.outerHeight();
  76. var _11=_c.edge;
  77. if(e.pageY>_e.top&&e.pageY<_e.top+_11){
  78. _d+="n";
  79. }else{
  80. if(e.pageY<_e.top+_10&&e.pageY>_e.top+_10-_11){
  81. _d+="s";
  82. }
  83. }
  84. if(e.pageX>_e.left&&e.pageX<_e.left+_11){
  85. _d+="w";
  86. }else{
  87. if(e.pageX<_e.left+_f&&e.pageX>_e.left+_f-_11){
  88. _d+="e";
  89. }
  90. }
  91. var _12=_c.handles.split(",");
  92. _12=$.map(_12,function(h){
  93. return $.trim(h).toLowerCase();
  94. });
  95. if($.inArray("all",_12)>=0||$.inArray(_d,_12)>=0){
  96. return _d;
  97. }
  98. for(var i=0;i<_d.length;i++){
  99. var _13=$.inArray(_d.substr(i,1),_12);
  100. if(_13>=0){
  101. return _12[_13];
  102. }
  103. }
  104. return "";
  105. };
  106. $.fn.resizable=function(_14,_15){
  107. if(typeof _14=="string"){
  108. return $.fn.resizable.methods[_14](this,_15);
  109. }
  110. return this.each(function(){
  111. var _16=null;
  112. var _17=$.data(this,"resizable");
  113. if(_17){
  114. $(this).unbind(".resizable");
  115. _16=$.extend(_17.options,_14||{});
  116. }else{
  117. _16=$.extend({},$.fn.resizable.defaults,$.fn.resizable.parseOptions(this),_14||{});
  118. $.data(this,"resizable",{options:_16});
  119. }
  120. if(_16.disabled==true){
  121. return;
  122. }
  123. $(this).bind("mousemove.resizable",{target:this},function(e){
  124. if($.fn.resizable.isResizing){
  125. return;
  126. }
  127. var dir=_b(e);
  128. $(e.data.target).css("cursor",dir?dir+"-resize":"");
  129. }).bind("mouseleave.resizable",{target:this},function(e){
  130. $(e.data.target).css("cursor","");
  131. }).bind("mousedown.resizable",{target:this},function(e){
  132. var dir=_b(e);
  133. if(dir==""){
  134. return;
  135. }
  136. function _18(css){
  137. var val=parseInt($(e.data.target).css(css));
  138. if(isNaN(val)){
  139. return 0;
  140. }else{
  141. return val;
  142. }
  143. };
  144. var _19={target:e.data.target,dir:dir,startLeft:_18("left"),startTop:_18("top"),left:_18("left"),top:_18("top"),startX:e.pageX,startY:e.pageY,startWidth:$(e.data.target).outerWidth(),startHeight:$(e.data.target).outerHeight(),width:$(e.data.target).outerWidth(),height:$(e.data.target).outerHeight(),deltaWidth:$(e.data.target).outerWidth()-$(e.data.target).width(),deltaHeight:$(e.data.target).outerHeight()-$(e.data.target).height()};
  145. $(document).bind("mousedown.resizable",_19,_8);
  146. $(document).bind("mousemove.resizable",_19,_9);
  147. $(document).bind("mouseup.resizable",_19,_a);
  148. $("body").css("cursor",dir+"-resize");
  149. });
  150. });
  151. };
  152. $.fn.resizable.methods={options:function(jq){
  153. return $.data(jq[0],"resizable").options;
  154. },enable:function(jq){
  155. return jq.each(function(){
  156. $(this).resizable({disabled:false});
  157. });
  158. },disable:function(jq){
  159. return jq.each(function(){
  160. $(this).resizable({disabled:true});
  161. });
  162. }};
  163. $.fn.resizable.parseOptions=function(_1a){
  164. var t=$(_1a);
  165. return $.extend({},$.parser.parseOptions(_1a,["handles",{minWidth:"number",minHeight:"number",maxWidth:"number",maxHeight:"number",edge:"number"}]),{disabled:(t.attr("disabled")?true:undefined)});
  166. };
  167. $.fn.resizable.defaults={disabled:false,handles:"n, e, s, w, ne, se, sw, nw, all",minWidth:10,minHeight:10,maxWidth:10000,maxHeight:10000,edge:5,onStartResize:function(e){
  168. },onResize:function(e){
  169. },onStopResize:function(e){
  170. }};
  171. $.fn.resizable.isResizing=false;
  172. })(jQuery);