ui.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. (function () {
  2. let fragment = document.createDocumentFragment();
  3. // 获取地址栏信息
  4. let GetQueryString = (name) => {
  5. let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
  6. let r = window.location.search.substr(1).match(reg);
  7. if (r != null) return unescape(r[2]);
  8. return "";
  9. }
  10. let temp = GetQueryString('m')
  11. // 获取总数组
  12. const arrAll = []
  13. for (let k in objInfo) {
  14. arrAll.push({
  15. id: k,
  16. name: objInfo[k]
  17. })
  18. }
  19. // 开启了分页得到的数组
  20. let arr = []
  21. // 总数组分割
  22. let arrSpile = []
  23. if (pageOpen) {
  24. // 数据的总数
  25. const total = arrAll.length
  26. // 计算出分页的个数
  27. const pageSize = Math.ceil(total / pageNum)
  28. // 生成 分页 指示器
  29. const body = document.querySelector('body')
  30. const pageBox = document.createElement('div');
  31. pageBox.classList.add('pageBox')
  32. for (let i = 0; i < pageSize; i++) {
  33. const pageBoxSon = document.createElement('div');
  34. pageBoxSon.innerHTML = i + 1
  35. pageBox.appendChild(pageBoxSon)
  36. // 当前的裁剪数据-联合数组类型
  37. arrSpile.push(arrAll.slice(i * pageNum, (i + 1) * pageNum))
  38. }
  39. body.appendChild(pageBox)
  40. // 为分页绑定点击事件
  41. const pageDomSonAll = document.querySelectorAll('.pageBox div')
  42. pageDomSonAll.forEach((v, i) => {
  43. v.addEventListener('click', () => {
  44. pageDomCreateFu(i)
  45. })
  46. })
  47. } else arr = arrAll
  48. // 向页面创建元素
  49. const pageDomCreateFu = (acNum) => {
  50. if (pageOpen) {
  51. arr = arrSpile[acNum]
  52. //高亮当前
  53. const pageDomSonAll = document.querySelectorAll('.pageBox div')
  54. pageDomSonAll.forEach(v => {
  55. v.classList.remove('active')
  56. })
  57. pageDomSonAll[acNum].classList.add('active')
  58. }
  59. let ul = document.querySelector('.con');
  60. ul.innerHTML = ''
  61. arr.forEach(v => {
  62. let li = document.createElement('li');
  63. let divWrap = document.createElement('div');
  64. let a = document.createElement('a');
  65. let div = document.createElement('div');
  66. let p = document.createElement("p");
  67. divWrap.classList.add('case');
  68. a.classList.add('link-a');
  69. // 判断地址栏有没有参数,有的话就跳Model2,没有logo
  70. if (temp) a.href = `Model3${temp}.html?m=${v.id}`;
  71. else a.href = `Model3.html?m=${v.id}`;
  72. div.classList.add('card-img');
  73. div.style = `background-image: url(images/${v.id}.jpg)`;
  74. p.innerHTML = v.name;
  75. a.appendChild(div);
  76. divWrap.appendChild(a);
  77. li.appendChild(divWrap);
  78. li.appendChild(p);
  79. fragment.appendChild(li);
  80. })
  81. ul.appendChild(fragment);
  82. }
  83. pageDomCreateFu(0)
  84. })()