newslist.js 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275
  1. $(function(){
  2. $(".find_nav_list li").on('click', function(){
  3. nav_w=$(this).width();
  4. $(this).addClass("find_nav_cur").siblings().removeClass("find_nav_cur");
  5. $(this).find("a").addClass("on");
  6. $(this).siblings().find("a").removeClass("on");
  7. var fn_w = ($(".find_nav").width() - nav_w) / 2;
  8. var fnl_l;
  9. var fnl_x = parseInt($(this).position().left);
  10. if (fnl_x <= fn_w) {
  11. fnl_l = 0;
  12. } else if (fn_w - fnl_x <= flb_w - fl_w) {
  13. fnl_l = flb_w - fl_w;
  14. } else {
  15. fnl_l = fn_w - fnl_x;
  16. }
  17. $(".find_nav_list").animate({
  18. "left" : fnl_l
  19. }, 300);
  20. sessionStorage.left=fnl_l;
  21. var c_nav=$(this).find("a").text();
  22. });
  23. var Yleft = $('.find_nav_list ul li a.on').position().left;
  24. var Yleftlast = $('.find_nav_list ul li').last().position().left;
  25. var Ylefteq2 = $('.find_nav_list ul li').eq(-2).position().left;
  26. var Ylefteq3 = $('.find_nav_list ul li').eq(-3).position().left;
  27. if (Yleft < 150) {
  28. $(".find_nav_list").css("left","0px");
  29. }else if(Yleft>Yleftlast){
  30. $(".find_nav_list").css("left",'-'+(Yleft-$(window).width()+95)+"px");
  31. }else if(Yleft>Ylefteq2){
  32. $(".find_nav_list").css("left",'-'+(Yleft-($(window).width()/2)-15)+"px");
  33. }else if(Yleft>Ylefteq3){
  34. $(".find_nav_list").css("left",'-'+(Yleft-($(window).width()/2)+90)+"px");
  35. }else{
  36. $(".find_nav_list").css("left",'-'+(Yleft-90)+"px");
  37. };
  38. var fl_w=$(".find_nav_list").width();
  39. var flb_w=$(".find_nav_left").width();
  40. $(".find_nav_list").on('touchstart', function (e) {
  41. var touch1 = e.originalEvent.targetTouches[0];
  42. x1 = touch1.pageX;
  43. y1 = touch1.pageY;
  44. ty_left = parseInt($(this).css("left"));
  45. });
  46. $(".find_nav_list").on('touchmove', function (e) {
  47. var touch2 = e.originalEvent.targetTouches[0];
  48. var x2 = touch2.pageX;
  49. var y2 = touch2.pageY;
  50. if(ty_left + x2 - x1>=0){
  51. $(this).css("left", 0);
  52. }else if(ty_left + x2 - x1<=flb_w-fl_w){
  53. $(this).css("left", flb_w-fl_w);
  54. }else{
  55. $(this).css("left", ty_left + x2 - x1+20);
  56. // console.log(ty_left + x2 - x1+20)
  57. }
  58. if(Math.abs(y2-y1)>0){
  59. e.preventDefault();
  60. }
  61. });
  62. // 轮播图
  63. var mySwiper1 = new Swiper('.newslist_slide_main',{
  64. autoplay:5500, //自动切换
  65. loop : true, //循环
  66. pagination: '.swiper-pagination', // 如果需要分页器
  67. })
  68. var mySwiper2 = new Swiper('.newslist_type', {
  69. slidesPerView : 4,
  70. slidesPerGroup : 1,
  71. })
  72. /*----------------定义页面全局变量-----------------------*/
  73. // 页数
  74. var page = 0;
  75. // 每页展示5个
  76. var size = 10;
  77. //资讯ID
  78. var lid=0;
  79. //资讯区域ID
  80. var cityid=0;
  81. var url = window.location.href;
  82. var params = getUrlParams(url); //获取get请求的参数
  83. if(!$.isEmptyObject(params)){
  84. $.each(params,function(key,val){
  85. switch (key){
  86. case 'lid':
  87. lid = val;
  88. break;
  89. case 'cityid':
  90. cityid = val;
  91. break;
  92. }
  93. })
  94. // urlParams = urlParams.substring(0,urlParams.length - 1);
  95. // searchParams = '&'+ urlParams;
  96. }
  97. // 选择各个模块
  98. function ModuleWay(conditions){
  99. var _html="";
  100. $.each(conditions.data,function (key,val) {
  101. // <!-- 1图 小图 -->
  102. if (val.thumb != null && val.thumb != "" && val.thumb.length == 1 && val.thumb_size == 1) {
  103. _html +='<li class="oneimg c">';
  104. _html +='<a href="/news/details/'+val.id+'/?city='+val.city+'">';
  105. _html +='<p class="title">';
  106. _html +='<span class="oneimg_span">'+val.subject+'</span>';
  107. _html +='<span>'+val.open_time+'</span>';
  108. _html +='</p>';
  109. _html +='<p class="img"><img src="'+conditions.url+val.thumb[0]+'" alt=""></p>';
  110. _html +='</a>';
  111. _html +='</li>';
  112. }else if(val.thumb_size == 2){
  113. // <!-- 1大图 -->
  114. _html +='<li class="bigimg">';
  115. _html +='<a href="/news/details/'+val.id+'/?city='+val.city+'">';
  116. _html +='<p class="title">';
  117. _html +='<span>'+val.subject+'</span>';
  118. _html +='<span>'+val.open_time+'</span>';
  119. _html +='</p>';
  120. _html +='<p class="img"><img src="'+conditions.url+val.thumb[0]+'" alt=""></p>';
  121. _html +='</a>';
  122. _html +='</li>';
  123. }else if (val.thumb != null && val.thumb != "" && val.thumb.length > 1) {
  124. // <!-- 3图 -->
  125. _html +='<li class="listimg">';
  126. _html +='<a href="/news/details/'+val.id+'/?city='+val.city+'">';
  127. _html +='<p class="title">';
  128. _html +='<span>'+val.subject+'</span>';
  129. _html +='<span>'+val.open_time+'</span>';
  130. _html +='</p>';
  131. _html +='<p class="img">';
  132. for (k in val.thumb) {
  133. _html +='<i><img src="'+conditions.url+val.thumb[k]+'" alt=""></i>';
  134. };
  135. _html +='</p>';
  136. _html +='</a>';
  137. _html +='</li>';
  138. };
  139. })
  140. return _html ;
  141. }
  142. /*----------------------------------------------------------------------------------*/
  143. // 封装 ajax 方法
  144. function AjaxFn(){
  145. page = 1;
  146. $.ajax({
  147. type: 'GET',
  148. url: '/news/homeform?page='+page+'&limit='+size +'&city='+cityid+'&lid='+lid,
  149. dataType: 'json',
  150. success: function(data){
  151. if(data.code == 200){
  152. $('.newslist_list_main ul').append(ModuleWay(data.data)) //调用选择模块
  153. }
  154. },
  155. error: function(xhr, type){
  156. // alert('Ajax error!');
  157. // 即使加载出错,也得重置
  158. // me.resetload();
  159. }
  160. });
  161. }
  162. // 点击切换导航栏 ajax 切换
  163. $(".find_nav_list1 ul").on('click','li',function(){
  164. var $this = $(this);
  165. cityid = $this.find('a').attr('data-city');
  166. $('.newslist_list_main ul').html(""); //切换内容之前先清空盒子
  167. AjaxFn(); //调用Ajax方法
  168. LoadingDataFn(); //调用Ajax方法
  169. })
  170. $(".newslist_type_main").on('click','a',function(){
  171. var $this = $(this);
  172. lid = $this.attr('data-lid');
  173. $('.newslist_list_main ul').html(""); //切换内容之前先清空盒子
  174. AjaxFn(); //调用Ajax方法
  175. LoadingDataFn(); //调用Ajax方法
  176. })
  177. // console.log(thisID)
  178. function LoadingDataFn() {
  179. // 上滑加载
  180. $('.newslist_list_main').dropload({
  181. // 调用加载
  182. scrollArea : window,
  183. loadDownFn : function(me){
  184. $('.dropload-down').eq(1).show().siblings('.dropload-down').remove();
  185. page++;
  186. $.ajax({
  187. type: 'GET',
  188. url: '/news/homeform?page='+page+'&limit='+size +'&city='+cityid+'&lid='+lid,
  189. dataType: 'json',
  190. success: function(data){
  191. // console.log(data);
  192. if(data.code == 200){
  193. $('.newslist_list_main ul').append(ModuleWay(data.data)) //调用选择模块
  194. }else{
  195. // 锁定
  196. me.lock();
  197. // 无数据
  198. me.noData();
  199. }
  200. // alert(data);
  201. // 每次数据加载完,必须重置
  202. setTimeout(function(){
  203. // 插入数据到页面,放到最后面
  204. // $('.news_list').append(result);
  205. // 每次数据插入,必须重置
  206. me.resetload();
  207. $(".oneimg_span").each(function(i){
  208. if($(this).text().length>25){ //获取td当前对象的文本,如果长度大于25;
  209. $(this).attr("title",$(this).text()); //给td设置title属性,并且设置td的完整值.给title属性.
  210. var text=$(this).text().substring(0,25)+"..."; //获取td的值,进行截取。赋值给text变量保存.
  211. $(this).text(text); //重新为td赋值;
  212. }
  213. });
  214. },1000);
  215. // me.resetload();
  216. $('.dropload-down').show();
  217. },
  218. error: function(xhr, type){
  219. // alert('Ajax error!');
  220. // 即使加载出错,也得重置
  221. me.resetload();
  222. }
  223. });
  224. }
  225. });
  226. }
  227. LoadingDataFn();
  228. })