page1.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. $(function () {
  2. const globaldata = {
  3. // 用户是否登录
  4. user: true,
  5. // 登录弹框
  6. sgin () {
  7. $("#toast").addClass("show").find("#sgin").addClass("show");
  8. }
  9. }
  10. // 显示区高度
  11. let ch = document.documentElement.clientHeight || document.body.clientHeight;
  12. // 实现评论区加载
  13. let lock = false;
  14. $(window).scroll(function () {
  15. if (lock) return false;
  16. // 滑动区高度
  17. let sh = document.documentElement.scrollHeight || document.body.scrollHeight;
  18. // 滑动位置
  19. let st = document.documentElement.scrollTop || document.body.scrollTop;
  20. let c = sh * 1 - ch * 1 - st * 1;
  21. if (c == 0) {
  22. lock = true;
  23. $(".comment>.loading").addClass("show")
  24. setTimeout(function (
  25. ) {
  26. $(".comment>.loading").removeClass("show");
  27. data().then(res => {
  28. if (res) {
  29. $(".comment>.nodata").addClass("show");
  30. }
  31. lock = res;
  32. });
  33. }, 2000)
  34. }
  35. })
  36. // 阅读量问题
  37. // 评论区
  38. function data () {
  39. // 请求 根据请求改变内容 唯一标识 data-userid="1" data-good="false"
  40. let com = `<div class="user" data-good="false" data-userid="1" >
  41. <div class="u-img"><img src="./imgs/qq.png" alt="" class="img"></div>
  42. <div class="u-content">
  43. <div class="u-flex">
  44. <div class="u-name">QQ官方</div>
  45. <div class="u-fabulous" data-gods="1"><span>0</span><i data-gods="1" style="margin-left:5px" class="glyphicon glyphicon-thumbs-up"></i></div>
  46. </div>
  47. <div class="u-detail">
  48. 对此,广东警官学院表示,其普通高等教育(全日制)招生工作严格执行教育部的“阳光高考”规定和工作程序,不以任何形式承诺录取,不因任何理由降低标准录取。学校从未委托任何个人、中介组织或招生机构开展提前招生、高职扩招等宣
  49. </div>
  50. <div class="u-flex">
  51. <div class="u-date">2020-12-15</div>
  52. <div data-gods="2" class="u-report">举报</div>
  53. </div>
  54. </div>
  55. </div>`;
  56. return new Promise(resolve => {
  57. $("#detail").append(com);
  58. //评论点赞 登录状态 请求
  59. let lists = $("#detail>.user");
  60. // 模拟无信息加载情况
  61. if (lists.length == 10) {
  62. resolve(true)
  63. }
  64. for (let i = 0; i < lists.length; i++) {
  65. $(lists[i]).unbind("click");
  66. $(lists[i]).click(function (e) {
  67. if (!globaldata.user) {
  68. globaldata.sgin();
  69. return false
  70. }
  71. let userid = $(this).data("userid");
  72. let lock = $(this).data("good");
  73. let gods = e.target.dataset.gods;
  74. if (gods == 1) {
  75. let $i = $(this).find("i");
  76. let $span = $(this).find("span");
  77. let num = $span.text();
  78. if (!lock) {
  79. $i.addClass("color");
  80. $(this).data("good", true);
  81. $span.text(num * 1 + 1);
  82. } else {
  83. $i.removeClass("color");
  84. $(this).data("good", false);
  85. $span.text(num * 1 - 1);
  86. }
  87. return false;
  88. }
  89. if (gods == 2) {
  90. $("#toast").addClass("show").find("#report").addClass("show").data("userid", userid);
  91. }
  92. })
  93. }
  94. resolve(false);
  95. })
  96. }
  97. // 发表评论 登录状态 请求
  98. $("#comment>.comment>.nocomment").click(function () {
  99. if (!globaldata.user) {
  100. globaldata.sgin();
  101. return false
  102. }
  103. // $(this).addClass("noshow");
  104. $("#toast").addClass("show")
  105. })
  106. // 阅读点赞 登录状态 请求
  107. $("#read>.good").click(function () {
  108. if (!globaldata.user) {
  109. globaldata.sgin();
  110. return false
  111. }
  112. let $i = $(this).find("i");
  113. let $span = $(this).find("span");
  114. let num = $span.text();
  115. let lock = $i.data("good");
  116. if (!lock) {
  117. $i.addClass("color");
  118. $i.data("good", true);
  119. $span.text(num * 1 + 1);
  120. } else {
  121. $i.removeClass("color");
  122. $i.data("good", false);
  123. $span.text(num * 1 - 1);
  124. }
  125. })
  126. // 举报事件
  127. $("#report").click(function (e) {
  128. let $that = $(this);
  129. let lis = $that.find("li");
  130. let i = Array.prototype.slice.call(lis).indexOf(e.target);
  131. alert("点击举报" + i)
  132. })
  133. })