jquery.resizable.js 4.5 KB

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