EditTable.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. var AdjustTableFunc = function () {
  2. var TriggerFlag = false; // 触发标志
  3. var Index = 0;
  4. $.each($("table"), function (index, item) {
  5. var TableWidth = isNaN(parseFloat($(item).width())) ? 0 : parseFloat($(item).width()); // 表格宽度
  6. // 替换HTML
  7. var ChildHtmlStr = $(item).prop("outerHTML")
  8. var HtmlStr = "<div class='TableContainer TContain_" + Index + "'></div>";
  9. $(item).after(HtmlStr);
  10. $(item).remove();
  11. var JqStr = ".TContain_" + Index;
  12. $(JqStr).append(ChildHtmlStr);
  13. Index += 1;
  14. });
  15. var Index = 0;
  16. $.each($("table"), function (index, item) {
  17. var TableWidth = isNaN(parseFloat($(item).width())) ? 0 : parseFloat($(item).width()); // 表格宽度
  18. // 替换HTML
  19. var JqStr = ".TContain_" + Index;
  20. var BodyWidth = isNaN(parseFloat($(document).width())) ? 0 : parseFloat($(document).width()); // 界面宽度
  21. $(JqStr).css("width", BodyWidth + "px");
  22. if (TableWidth > BodyWidth) {
  23. // 额外显示滚动条
  24. var SHtmlStr = "<div class='PSBar' style='width: " + BodyWidth + "px;'></div>";
  25. $(JqStr).after(SHtmlStr);
  26. var HiddenRate = BodyWidth / TableWidth; // 滚动条比率
  27. var HiddenWidth = BodyWidth - (TableWidth - BodyWidth) * HiddenRate; // 现滚动条大小
  28. var CSHtmlStr = "<div class='CSBar' style='width: " + HiddenWidth + "px;'></div>";
  29. $(JqStr).next().append(CSHtmlStr);
  30. }
  31. Index += 1;
  32. });
  33. // 滚动条事件
  34. $(".TableContainer").on("touchstart", function () {
  35. TriggerFlag = true;
  36. }).on("touchmove", function () {
  37. var TableWidth = isNaN(parseFloat($(this).find("table").width())) ? 0 : parseFloat($(this).find("table").width()); // 表格宽度
  38. var BodyWidth = isNaN(parseFloat($(document).width())) ? 0 : parseFloat($(document).width()); // 界面宽度
  39. var HiddenRate = BodyWidth / TableWidth; // 滚动条比率
  40. var SLeftWdith = isNaN(parseFloat($(this)[0].scrollLeft)) ? 0 : parseFloat($(this)[0].scrollLeft);
  41. SLeftWdith *= HiddenRate;
  42. var NextClsName = $(this).next().attr("class");
  43. if (NextClsName == "PSBar") {
  44. $(this).next().find(".CSBar").css("left", SLeftWdith + "px");
  45. }
  46. });
  47. window.addEventListener("scroll", function (event) {
  48. var ClsName = event.target.className;
  49. if (ClsName == undefined) {
  50. return;
  51. }
  52. ClsName = ClsName.replace("TableContainer ", ".");
  53. var TableWidth = isNaN(parseFloat($(ClsName).find("table").width())) ? 0 : parseFloat($(ClsName).find("table").width()); // 表格宽度
  54. var BodyWidth = isNaN(parseFloat($(document).width())) ? 0 : parseFloat($(document).width()); // 界面宽度
  55. var HiddenRate = BodyWidth / TableWidth; // 滚动条比率
  56. var SLeftWdith = isNaN(parseFloat($(ClsName)[0].scrollLeft)) ? 0 : parseFloat($(ClsName)[0].scrollLeft);
  57. SLeftWdith *= HiddenRate;
  58. var NextClsName = $(ClsName).next().attr("class");
  59. if (NextClsName == "PSBar") {
  60. $(ClsName).next().find(".CSBar").css("left", SLeftWdith + "px");
  61. }
  62. }, true);
  63. };