猎豆优选官网

list.js 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. var qs = parseQueryString(window.location.href);
  2. var id = 0;
  3. var sex = '';
  4. var pageNum = 1;
  5. var maxPage = 1;
  6. var loadingFlag = false;
  7. var meiriData = [];//每日精选
  8. var nav_id = '';
  9. var navListData = [];
  10. $().ready(function () {
  11. init();
  12. })
  13. function parseQueryString(url) {
  14. var urlObj = {};
  15. var reg = /([^?=&]+)=([^?=&]+)/g;
  16. url.replace(reg, ($0, $1, $2) => {
  17. urlObj[$1] = decodeURIComponent($2);
  18. })
  19. return urlObj;
  20. }
  21. function init () {
  22. $(".head_item_nav").css("display","block")
  23. if(qs.path == "nav"){
  24. navlistData()
  25. }else{
  26. var navListHtml = "";
  27. if(localStorage.getItem("navList")){
  28. JSON.parse(localStorage.getItem("navList")).forEach(function (item,index) {
  29. navListHtml += `<li data-id="${item.id}"><a href="javascript:void(0)">${item.name}</a></li>`
  30. })
  31. $(".head_item_nav ul").html(navListHtml);
  32. $(".head_item_nav ul li").eq(0).find("a").addClass("navActive");
  33. }
  34. }
  35. if(qs.id){
  36. nav_id = qs.id;
  37. }
  38. selected(nav_id,1)
  39. scrollNav();
  40. clickNav();
  41. }
  42. //scroll
  43. function scrollNav () {
  44. $(window).scroll(function(){
  45. if($(window).scrollTop()>= $(document).height()-$(window).height() - 318){
  46. //到达底部加载数据
  47. if(loadingFlag){
  48. pageNum ++ ;
  49. selected(nav_id,pageNum);
  50. }
  51. }
  52. if($(window).scrollTop()>400){
  53. $('.head_item_nav').css({
  54. "display": "block",
  55. "position":"fixed",
  56. "top":"46px"
  57. })
  58. }else{
  59. $('.head_item_nav').css({
  60. "display": "block",
  61. "position":"static"
  62. })
  63. }
  64. });
  65. }
  66. //产品列表
  67. function selected (nav_id,pageNum) {
  68. loadingFlag = false;
  69. if(maxPage < pageNum){
  70. $(".loading").html("没有更多了")
  71. return;
  72. }
  73. $.ajax({
  74. type:'post',
  75. url: api.BASEURL + api.stocklistByCategoryId,
  76. headers:{
  77. sex:api.sex,
  78. source:api.source
  79. },
  80. data:{
  81. sort:1,
  82. category_id:nav_id,
  83. page:pageNum
  84. },
  85. dataType:"json",
  86. success: function (res) {
  87. if(res && res.errno == 0 && res.rst){
  88. var html = '';
  89. maxPage = res.rst.pageInfo.maxPage;
  90. if(res.rst.data.length>0){
  91. if(meiriData.length != 0){
  92. meiriData = meiriData.concat(res.rst.data);
  93. html = template_home(meiriData)
  94. }else{
  95. meiriData = res.rst.data;
  96. html = template_home(meiriData)
  97. }
  98. $(".Recommend .commodity_list ul").html(html)
  99. loadingFlag = true;
  100. $(".loading").html("努力加载中...")
  101. }else{
  102. if(pageNum == 1){
  103. $(".Recommend .commodity_list ul").html(html)
  104. }
  105. $(".loading").html("没有更多了")
  106. }
  107. }else{
  108. alert(res.err)
  109. }
  110. },
  111. fail: function (err) {
  112. console.log(err)
  113. }
  114. })
  115. }
  116. //点击navlist切换列表
  117. function clickNav () {
  118. $(".head_item_nav ul li").click(function () {
  119. $(".head_item_nav ul li a").removeClass("navActive")
  120. $(this).find("a").addClass("navActive").siblings()
  121. meiriData = [];
  122. pageNum = 1;
  123. maxPage = 1;
  124. nav_id = $(this).attr("data-id");
  125. selected(nav_id,pageNum)
  126. if ($('html').scrollTop()) {
  127. $('html').animate({ scrollTop: 0 }, 1);
  128. return false;
  129. }
  130. $('body').animate({ scrollTop: 0 }, 1);
  131. })
  132. }
  133. //导航栏目(商品分类)
  134. function navlistData (){
  135. $.ajax({
  136. type:"get",
  137. url: api.BASEURL + api.navList,
  138. headers:{
  139. sex:api.sex,
  140. source:api.source
  141. },
  142. dataType:"json",
  143. success: function (res) {
  144. if(res.errno == 0 && res.rst){
  145. var idx = 0;
  146. if(res.rst.data){
  147. navListData = res.rst.data;
  148. var navListHtml = '';
  149. navListData.forEach(function (item,index) {
  150. navListHtml += `<li data-id=${item.id}><a href="javascript:void(0)">${item.name}</a></li>`;
  151. if(item.id == nav_id){
  152. idx = index;
  153. }
  154. })
  155. $(".head_item_nav ul").html(navListHtml);
  156. $(".head_item_nav ul li").eq(idx).find("a").addClass("navActive");
  157. clickNav()
  158. }
  159. }
  160. },
  161. fail: function (err) {
  162. console.log(err)
  163. }
  164. });
  165. }