index.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. $(function(){
  2. // 导航
  3. new Swiper('.vnav-box', {
  4. autoplay: false,//可选选项,自动滑动
  5. slidesPerView: 'auto',
  6. spaceBetween: 10,
  7. })
  8. /*
  9. * 区域选择功能特效
  10. */
  11. var wdata = new Object();
  12. wdata.cityID = 0; //用于存放市县
  13. //创建MeScroll对象,内部已默认开启下拉刷新,自动执行up.callback,刷新列表数据;
  14. var mescroll = new MeScroll("mescroll", {
  15. up: {
  16. callback: getListData, //上拉回调,此处可简写; 相当于 callback: function (page, mescroll) { getListData(page); }
  17. isBounce: false, //此处禁止ios回弹,解析(务必认真阅读,特别是最后一点): http://www.mescroll.com/qa.html#q10
  18. clearEmptyId: "dataList", //相当于同时设置了clearId和empty.warpId; 简化写法;默认null; 注意vue中不能配置此项
  19. toTop:{ //配置回到顶部按钮
  20. src : "/js/videolist/dist/res/mescroll-totop.png", //默认滚动到1000px显示,可配置offset修改
  21. offset : 100
  22. },
  23. lazyLoad: {
  24. use: true // 是否开启懒加载,默认false
  25. }
  26. }
  27. });
  28. // 市县选择
  29. $('.video-nav').on('click','a',function(){
  30. var $that = $(this);
  31. wdata.cityID = $that.attr('data-cid');
  32. $that.addClass('on').siblings().removeClass('on');
  33. //重置列表数据
  34. mescroll.resetUpScroll();
  35. //隐藏回到顶部按钮
  36. mescroll.hideTopBtn();
  37. })
  38. $('.video-nav a').eq(0).click();
  39. /*联网加载列表数据 page = {num:1, size:10}; num:当前页 从1开始, size:每页数据条数 */
  40. function getListData(page){
  41. //联网加载数据
  42. // getListDataFromNet(pdType, page.num, page.size, function(curPageData){
  43. getListDataFromNet(wdata.cityID, page.num, page.size, function(curPageData){
  44. //方法二(推荐): 后台接口有返回列表的总数据量 totalSize
  45. //必传参数(当前页的数据个数, 总数据量)
  46. mescroll.endBySize(curPageData.length, totalSize);
  47. //设置列表数据
  48. setListData(curPageData,page.num);
  49. }, function(){
  50. //联网失败的回调,隐藏下拉刷新和上拉加载的状态;
  51. mescroll.endErr();
  52. });
  53. }
  54. /*设置列表数据*/
  55. function setListData(curPageData,page){
  56. var listDom=document.getElementById("dataList");
  57. for (var i = 0; i < curPageData.length; i++) {
  58. var pd=curPageData[i];
  59. var str ='<a href="/video/videodetails/'+pd.hid+'">';
  60. str +='<div class="video-list-img">';
  61. str +='<img src="'+pd.thumb+'" alt="">';
  62. str +='</div>';
  63. str +='<div class="video-list-font">';
  64. str +='<p class="video-list-title">'+pd.description.substring(0,18)+'...</p>';
  65. str +='<p class="video-list-label">';
  66. str +='<span>'+(pd.plays*1 + 1000)+'播放</span>';
  67. str +='<span data-id="1" data-type="1" class="like">'+(pd.thumbs_up*1 + 500)+'点赞</span>'; // 这里需要判断 type 值 添加 oin
  68. str +='</p>';
  69. str +='</div>';
  70. str +='</a>';
  71. var liDom=document.createElement("li");
  72. liDom.innerHTML=str;
  73. listDom.appendChild(liDom);
  74. }
  75. }
  76. /*联网加载列表数据
  77. 在您的实际项目中,请参考官方写法: http://www.mescroll.com/api.html#tagUpCallback
  78. 请忽略getListDataFromNet的逻辑,这里仅仅是在本地模拟分页数据,本地演示用
  79. 实际项目以您服务器接口返回的数据为准,无需本地处理分页.
  80. * */
  81. function getListDataFromNet(cityId,pageNum,pageSize,successCallback,errorCallback) {
  82. //延时一秒,模拟联网
  83. setTimeout(function () {
  84. $.ajax({
  85. type: 'get',
  86. url: '/video/getvideo',
  87. // url: '../res/pdlist1.json?pdType='+pdType+'&num='+pageNum+'&size='+pageSize,
  88. data:{city:wdata.cityID,page:pageNum,limit:pageSize},
  89. dataType: 'json',
  90. success: function(data){
  91. var listData=[];
  92. totalSize= data.count; //总条数
  93. $.each(data.data,function(k,v){
  94. listData.push(v);
  95. })
  96. //回调
  97. successCallback(listData);
  98. },
  99. error: errorCallback
  100. });
  101. },1000)
  102. }
  103. // // 点赞特效 提交 id 及 1 代表点赞,2 代表取消
  104. // var objo = new Object();
  105. // $('#dataList').on('click','.like',function(){
  106. // var that = $(this);
  107. // if(that.hasClass('oin')){
  108. // that.removeClass('oin')
  109. // }else {
  110. // that.addClass('oin');
  111. // }
  112. // objo.id = that.attr('data-id')
  113. // objo.type = that.attr('data-type')
  114. // cityAjax(); // 提交点赞数据
  115. // })
  116. // // 提交点赞数据
  117. // function cityAjax(){
  118. // $.ajax({
  119. // url:'/js/videolist/index.json',
  120. // dataType:"json",
  121. // type:'POST',
  122. // data:{id:objo.id,type:objo.type},
  123. // success:function(data){
  124. // if(data.code == 200){
  125. // console.log("提交成功!")
  126. // }
  127. // }
  128. // });
  129. // }
  130. // 视频搜索功能
  131. $('.seek-btn').on('click',function(){
  132. var txt = $('.seek-txt').val();
  133. var li = '';
  134. $.ajax({
  135. type: 'post',
  136. url: '/video/search',
  137. data:{text:txt},
  138. dataType: 'json',
  139. success: function(data){
  140. $.each(data.data,function(k,v){
  141. li +='<li>';
  142. li +='<a href="/video/videodetails/'+v.hid+'">';
  143. li +='<div class="video-list-img">';
  144. li +='<img src="'+v.thumb+'" alt="">';
  145. li +='</div>';
  146. li +='<div class="video-list-font">';
  147. li +='<p class="video-list-title">'+v.description.substring(0,18)+'...</p>';
  148. li +='<p class="video-list-label">';
  149. li +='<span>'+(v.plays*1 + 1000)+'播放</span>';
  150. li +='<span data-id="1" data-type="1" class="like">'+(v.thumbs_up*1 + 500)+'点赞</span>'; // 这里需要判断 type 值 添加 oin
  151. li +='</p>';
  152. li +='</div>';
  153. li +='</a>';
  154. li +='</li>';
  155. })
  156. $('#dataList').html('');
  157. $('#dataList').append(li);
  158. }
  159. });
  160. })
  161. })