new_list.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. $(function () {
  2. // 图片懒加载
  3. $("img").lazyload();
  4. // 显示区高度
  5. let ch = document.documentElement.clientHeight || document.body.clientHeight;
  6. let lock = false;
  7. // 加载 数据
  8. let currentPage = 3, totalPage = 3;
  9. $(window).scroll(function () {
  10. if (lock) return false;
  11. // 滑动区高度
  12. let sh = document.documentElement.scrollHeight || document.body.scrollHeight;
  13. // 滑动位置
  14. let st = document.documentElement.scrollTop || document.body.scrollTop;
  15. let c = sh * 1 - ch * 1 - st * 1;
  16. if (c == 0 && currentPage <= totalPage) {
  17. lock = true;
  18. $(".my-loading").show();
  19. data({ currentPage }).then(res => { totalPage = res.totalPage; currentPage++; lock = res.lock; $(".my-loading").hide(); })
  20. }
  21. })
  22. // 加载数据
  23. function data (data) {
  24. return new Promise(resolve => {
  25. $.ajax({
  26. url: "http://api.gaokaoapp.net/member/news/",
  27. data: {
  28. ...data,
  29. pageSize: 10
  30. },
  31. type: "get",
  32. error: function (error) {
  33. $(".my-loading").html("已经没有可以加载的数据了")
  34. },
  35. success: function (res) {
  36. let { dataList, totalPage } = res.data;
  37. let father = document.createDocumentFragment();
  38. Array.from(dataList).forEach(
  39. item => {
  40. let str = `<a target="_blank" href="http://www.gaokaoapp.net/h_exam/${item.id}.html" class="list-item">
  41. <div class="item-img">
  42. <img data-original="${item.thumbnail}"
  43. src="../imgs/app.png"
  44. alt="">
  45. </div>
  46. <div class="item-detail">
  47. <div class="title">${item.title}</div>
  48. <div class="time">${item.source}<span>${item.delay_time}</span></div>
  49. </div>
  50. </a>`
  51. $(father).append(str);
  52. }
  53. )
  54. $(".list").append(father);
  55. $("img").lazyload();
  56. resolve({ lock: false, totalPage })
  57. }
  58. })
  59. })
  60. }
  61. })