ResizeControl.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. /**
  2. * 修改表格大小
  3. * 如此表格
  4. * <table>
  5. * <tr>
  6. * <td> </td>
  7. * <td id="tdId"> </td>
  8. * <td> </td>
  9. * </tr>
  10. * </table>
  11. * 指定中间那个表格的ID,就可以拖动修改表格的列宽。
  12. * 调用方法:
  13. * var resize=new ResizeControl("tdId");
  14. * resize.init();
  15. * @param tdResizeId
  16. * @return
  17. */
  18. function ResizeControl(tdResizeId)
  19. {
  20. var oldOffset = null;
  21. var tdResize = null;
  22. var isMove = false;
  23. var tdLeft = null;
  24. var tdRight = null;
  25. var lwidth;
  26. var rwidth;
  27. this.tdResizeId = tdResizeId;
  28. var self = this;
  29. this.init = function()
  30. {
  31. $("body").bind("mousemove", function(event)
  32. {
  33. if(tdResize == null || oldOffset == null)
  34. return;
  35. if(isMove == false)
  36. return;
  37. var left = oldOffset.left;
  38. var offsetX = event.clientX - left;
  39. tdLeft.width(lwidth + offsetX);
  40. tdRight.width(rwidth - offsetX);
  41. });
  42. $("#" + self.tdResizeId).bind("mousemove", function(event)
  43. {
  44. tdResize = $(this);
  45. tdResize.css(
  46. {
  47. 'cursor':'w-resize'
  48. });
  49. });
  50. $("#" + self.tdResizeId).bind("mousedown", function(event)
  51. {
  52. tdResize = $(this);
  53. if(tdResize.prevAll().length < 1 | tdResize.nextAll().length < 1)
  54. {
  55. return;
  56. }
  57. oldOffset = tdResize.offset();
  58. if(event.clientX - oldOffset.left < 4 || (tdResize.width() - (event.clientX - oldOffset.left)) < 4)
  59. {
  60. isMove = true;
  61. tdResize.css(
  62. {
  63. 'cursor':'w-resize'
  64. });
  65. tdLeft = tdResize.prev();
  66. tdRight = tdResize.next();
  67. lwidth = tdLeft.width();
  68. rwidth = tdRight.width();
  69. }
  70. });
  71. $("body").bind("mouseup", function(event)
  72. {
  73. if(tdResize != null)
  74. {
  75. tdResize.css(
  76. {
  77. 'cursor':'default'
  78. });
  79. }
  80. tdResize = null;
  81. oldOffset = null;
  82. isMove = false;
  83. });
  84. };
  85. }