ui.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. (function () {
  2. let fragment = document.createDocumentFragment();
  3. // 记录当前是选中的维度
  4. let dimensionality = "3d";
  5. $("#3dbtn").css("background", "#ffffff70");
  6. $("#2dbtn").css("cursor", "pointer");
  7. $("#3dbtn").css("cursor", "pointer");
  8. // 获取地址栏信息
  9. let GetQueryString = (name) => {
  10. let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
  11. let r = window.location.search.substr(1).match(reg);
  12. if (r != null) return unescape(r[2]);
  13. return "";
  14. };
  15. let temp = GetQueryString("m");
  16. const arrAll = [];
  17. // 开启了分页得到的数组
  18. let arr = [];
  19. // 总数组分割
  20. let arrSpile = [];
  21. const getData = (infos) => {
  22. arrAll.length = 0;
  23. // 获取总数组
  24. for (let k in infos) {
  25. arrAll.push({
  26. id: k,
  27. name: infos[k],
  28. });
  29. }
  30. if (pageOpen) {
  31. // 数据的总数
  32. const total = arrAll.length;
  33. // 计算出分页的个数
  34. const pageSize = Math.ceil(total / pageNum);
  35. // 生成 分页 指示器
  36. const body = document.querySelector("body");
  37. const pageBox = document.createElement("div");
  38. pageBox.classList.add("pageBox");
  39. for (let i = 0; i < pageSize; i++) {
  40. const pageBoxSon = document.createElement("div");
  41. pageBoxSon.innerHTML = i + 1;
  42. pageBox.appendChild(pageBoxSon);
  43. // 当前的裁剪数据-联合数组类型
  44. arrSpile.push(arrAll.slice(i * pageNum, (i + 1) * pageNum));
  45. }
  46. body.appendChild(pageBox);
  47. // 为分页绑定点击事件
  48. const pageDomSonAll = document.querySelectorAll(".pageBox div");
  49. pageDomSonAll.forEach((v, i) => {
  50. v.addEventListener("click", () => {
  51. pageDomCreateFu(i);
  52. });
  53. });
  54. } else arr = arrAll;
  55. };
  56. getData(objInfo);
  57. // 绑定2D/3D按钮事件
  58. $("#2dbtn").on("click", function () {
  59. // alert("2dbtn被点击了!");
  60. dimensionality = "2d";
  61. $("#2dbtn").css("background", "#ffffff70");
  62. $("#3dbtn").css("background", "#ffffff21");
  63. // alert(dimensionality);
  64. getData(objInfo2d);
  65. pageDomCreateFu(0);
  66. });
  67. $("#3dbtn").on("click", function () {
  68. // alert("3dbtn被点击了!");
  69. dimensionality = "3d";
  70. $("#3dbtn").css("background", "#ffffff70");
  71. $("#2dbtn").css("background", "#ffffff21");
  72. // alert(dimensionality);
  73. getData(objInfo);
  74. pageDomCreateFu(0);
  75. });
  76. // 向页面创建元素
  77. const pageDomCreateFu = (acNum) => {
  78. if (pageOpen) {
  79. arr = arrSpile[acNum];
  80. //高亮当前
  81. const pageDomSonAll = document.querySelectorAll(".pageBox div");
  82. pageDomSonAll.forEach((v) => {
  83. v.classList.remove("active");
  84. });
  85. pageDomSonAll[acNum].classList.add("active");
  86. }
  87. let ul = document.querySelector(".con");
  88. ul.innerHTML = "";
  89. arr.forEach((v) => {
  90. let li = document.createElement("li");
  91. let divWrap = document.createElement("div");
  92. let a = document.createElement("a");
  93. let div = document.createElement("div");
  94. let p = document.createElement("p");
  95. divWrap.classList.add("case");
  96. a.classList.add("link-a");
  97. a.addEventListener("click", function () {
  98. if (dimensionality == "3d") {
  99. if (temp) a.href = `Model${temp}.html?m=${v.id}`;
  100. else a.href = `Model.html?m=${v.id}`;
  101. } else if (dimensionality == "2d") {
  102. a.href = `Model2D.html?m=${v.id}`;
  103. }
  104. });
  105. div.classList.add("card-img");
  106. div.style = `background-image: url(images/${v.id}.jpg)`;
  107. p.innerHTML = v.name;
  108. a.appendChild(div);
  109. divWrap.appendChild(a);
  110. li.appendChild(divWrap);
  111. li.appendChild(p);
  112. fragment.appendChild(li);
  113. });
  114. ul.appendChild(fragment);
  115. };
  116. pageDomCreateFu(0);
  117. })();