news.min.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. require(['config'], function () {
  2. require(['jquery', 'utils', 'swiper', 'pagination'], function ($, utils, Swiper, pagination) {
  3. $(function () {
  4. var TopGames = new Swiper('.swiper-container', {
  5. effect : 'fade',
  6. autoplay: {
  7. delay: 1000,
  8. disableOnInteraction:false
  9. },
  10. loop: true,
  11. on: {
  12. transitionStart: function(){
  13. var index = this.activeIndex - 1
  14. if (this.activeIndex == 4) {
  15. $('.newsTopSwiper_r li').eq(0).addClass('active').siblings().removeClass('active')
  16. } else {
  17. $('.newsTopSwiper_r li').eq(index).addClass('active').siblings().removeClass('active')
  18. }
  19. },
  20. }
  21. });
  22. $('.newsTopSwiper_r li').hover(function () {
  23. var index = $(this).index() + 1
  24. TopGames.slideTo(index, 300, false);//切换到第一个slide,速度为1秒
  25. })
  26. var navIndex = 0; // 0: 资讯 1:攻略 2:活动
  27. var zx_index = 1;
  28. var gl_index = 1;
  29. var hd_index = 1;
  30. function chunk(array, size) {
  31. let [start, end, result] = [null, null, []];
  32. for (let i = 0; i < Math.ceil(array.length / size); i++) {
  33. start = i * size;
  34. end = start + size;
  35. result.push(array.slice(start, end));
  36. }
  37. return result;
  38. };
  39. //导航切换
  40. $('.newsBodyTitle li').on('click',function(){
  41. navIndex = $(this).index();
  42. $(this).addClass('active').siblings().removeClass('active');
  43. $('.toggle_cnt>div').eq(navIndex).show().siblings().hide();
  44. var total = 0;
  45. var number = 1;
  46. if (navIndex == 0) {
  47. total = zxArr.count; //资讯
  48. number = zx_index;
  49. } else if (navIndex == 1) {
  50. total = glArr.count; //新闻
  51. number = gl_index;
  52. } else if (navIndex == 2) {
  53. total = hdArr.count; //活动
  54. number = hd_index;
  55. }
  56. // 生成分页并绑定分页事件
  57. pagination({
  58. elem : '#pagination',
  59. total : total,
  60. number : number,
  61. callback: renderGamelist
  62. });
  63. });
  64. // 页码
  65. renderPagination();
  66. function renderGamelist(page) {
  67. page = page || 1;
  68. var ajaxData;
  69. if (navIndex == 0) {
  70. zx_index = page;
  71. ajaxData = {'new_page': zx_index};
  72. } else if (navIndex == 1) {
  73. gl_index = page;
  74. ajaxData = {'strategy_page': gl_index};
  75. } else if (navIndex == 2) {
  76. hd_index = page;
  77. ajaxData = {'activity_page': hd_index};
  78. }
  79. $.ajax({
  80. url:'',
  81. data: ajaxData,
  82. type: 'get',
  83. success: function (res) {
  84. var resData = '';
  85. if (navIndex == 0) {
  86. resData = res.news_list.new.list;
  87. $('.js-new_tpl').html(newsDatatoHtml(resData))
  88. } else if (navIndex == 1) {
  89. resData = res.news_list.strategy.list;
  90. $('.js-strategy_tpl').html(newsDatatoHtml(resData))
  91. } else if (navIndex == 2) {
  92. resData = res.news_list.activity.list;
  93. $('.js-activity_tpl').html(newsDatatoHtml(resData))
  94. }
  95. }
  96. })
  97. }
  98. function newsDatatoHtml(data) {
  99. var h = '';
  100. $.each(data, function (i, v) {
  101. var date = new Date(v.pubdate * 1000)
  102. h += '<a href="/v8/news/detail/newsid/'+v.id+'.html">\n' +
  103. ' <li class="item">\n' +
  104. ' <h2 class="item_title">\n' +
  105. ' '+v.title+'\n' +
  106. ' </h2>\n' +
  107. ' <div class="item_msg">\n' +
  108. ' <div class="item_msg_img">\n' +
  109. ' <img src="'+v.img+'" alt="">\n' +
  110. ' </div>\n' +
  111. ' <div class="item_msg_text">\n' +
  112. ' <p>'+v.post_content+'</p>\n' +
  113. ' <b>'+date.format("MM-dd hh:mm")+'</b>\n' +
  114. ' </div>\n' +
  115. ' </div>\n' +
  116. ' </li>\n' +
  117. ' </a>'
  118. });
  119. return h;
  120. }
  121. function renderPagination() {
  122. renderGamelist();
  123. // 生成分页并绑定分页事件
  124. pagination({
  125. elem : '#pagination',
  126. total : zxArr.count,
  127. number : '',
  128. callback: renderGamelist
  129. });
  130. }
  131. })
  132. })
  133. });