Nenhuma Descrição

index.js 9.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. var numPage = 0;//第几页
  2. var dataList = [];//商品list
  3. $().ready(function () {
  4. swiperPage();
  5. getActivityGoodsList();//专题列表
  6. writeLogH5({action:'必剁清单首页',channel:'H5',url:window.location.href});//首页埋点
  7. })
  8. function swiperPage () {
  9. var mySwiper = new Swiper(".swiper-container", {
  10. direction: "vertical", //纵向展示
  11. // pagination: ".swiper-pagination", //小点
  12. //virtualTranslate : true,
  13. mousewheelControl: true,
  14. onInit: function(swiper) {
  15. swiperAnimateCache(swiper);
  16. swiperAnimate(swiper);
  17. },
  18. onSlideChangeEnd: function(swiper) {
  19. swiperAnimate(swiper);
  20. },
  21. onTransitionEnd: function(swiper) {
  22. //回调函数,过渡结束时触发,接收Swiper实例作为参数。
  23. if(numPage != $(".swiper-slide-active").attr('data-num') && $(".swiper-slide-active").attr('data-num')){
  24. //监控动画执行到哪里了
  25. numPage = $(".swiper-slide-active").attr('data-num');
  26. if(numPage != 1 && numPage){
  27. var title = $(".swiper-slide-active .title-swiper-slide").html();
  28. var categroy_id = $(".swiper-slide-active .title-swiper-slide").attr("categroy_id");//专题id
  29. writeLogH5({action:'必剁清单-' + title,channel:'H5',categroy_id:categroy_id,url:window.location.href});//专题埋点
  30. }
  31. }
  32. swiperAnimate(swiper);
  33. },
  34. watchSlidesProgress: true,
  35. onProgress: function(swiper) {
  36. //回调函数,当Swiper的progress被改变时执行。接受Swiper实例和progress作为参数(可选)。
  37. for (var i = 0; i < swiper.slides.length; i++) {
  38. var slide = swiper.slides[i];
  39. var progress = slide.progress;
  40. var translate = progress * swiper.height / 4;
  41. var scale = 1 - Math.min(Math.abs(progress * 0.5), 1);
  42. var opacity = 1 - Math.min(Math.abs(progress / 2), 0.5);
  43. slide.style.opacity = opacity;
  44. var es = slide.style;
  45. es.webkitTransform = es.MsTransform = es.msTransform = es.MozTransform = es.OTransform = es.transform =
  46. "translate3d(0," +
  47. translate +
  48. "px,-" +
  49. translate +
  50. "px) scaleY(" +
  51. scale +
  52. ")";
  53. }
  54. },
  55. onSetTransition: function(swiper, speed) {
  56. //回调函数,每当设置Swiper开始过渡动画时执行。transtion获取到的是Swiper的speed值
  57. for (var i = 0; i < swiper.slides.length; i++) {
  58. var es = swiper.slides[i].style;
  59. es.webkitTransitionDuration = es.MsTransitionDuration = es.msTransitionDuration = es.MozTransitionDuration = es.OTransitionDuration = es.transitionDuration =
  60. speed + "ms";
  61. }
  62. }
  63. });
  64. }
  65. function getActivityGoodsList () {
  66. //专题列表
  67. $.ajax({
  68. type:"post",
  69. url:"/api/v2/channel/getActivityGoodsList",
  70. dataType:'json',
  71. success:function (res) {
  72. // console.log(res)
  73. if(res && res.errno == 0){
  74. dataList = res.rst.data;
  75. var categoryList = '';
  76. dataList.forEach(function (item, index) {
  77. if(index < 6){
  78. categoryList += `<li>${item.groups.name}</li>`
  79. }
  80. })
  81. $('.home_content .category').html(categoryList)
  82. sectionPageHtml();//页面渲染
  83. }
  84. }
  85. });
  86. }
  87. function sectionPageHtml () {
  88. //页面渲染
  89. var pageArrHtml = [];
  90. dataList.forEach(function (item, index) {
  91. var commodityHtml = '';
  92. item.goods.forEach(function (it,id){
  93. if(id<12){
  94. commodityHtml += `<li goods_id="${it.goods_id}" is_coupon="${it.is_coupon}" goods_url="${it.goods_url}">
  95. <img class="commodityImg" src="${it.img}" />
  96. <div class="title">${it.title}</div>
  97. <div class="price">
  98. <span class="newPrice">¥${it.discount_price}</span>
  99. <span class="oldPrice">¥${it.price}</span>
  100. </div>
  101. </li>`
  102. }
  103. })
  104. pageArrHtml[index] = `<div id="share" class="shareGo" onclick="shareWechatUrl()"><img src="https://kx-youhuiquan.oss-cn-beijing.aliyuncs.com/shuangshiyi/commodityListFirst/share.png"/><span>分享</span></div><div class="title-swiper-slide" categroy_id = "${item.groups.id}">${item.groups.name}</div><ul class="commodityList">${commodityHtml}</ul><div id="goApp" class="goApp" onclick="downLoadApp()"><img src="https://kx-youhuiquan.oss-cn-beijing.aliyuncs.com/shuangshiyi/commodityListFirst/goApp.png" /></div><img src="https://kx-youhuiquan.oss-cn-beijing.aliyuncs.com/shuangshiyi/yure/huojian.png" id="array" class="resize">`;
  105. if(index == 5){//最后一页
  106. pageArrHtml[index] = `<div id="share" class="shareGo" onclick="shareWechatUrl()"><img src="https://kx-youhuiquan.oss-cn-beijing.aliyuncs.com/shuangshiyi/commodityListFirst/share.png"/><span>分享</span></div><div class="title-swiper-slide">${item.groups.name}</div><ul class="commodityList">${commodityHtml}</ul><div id="goApp" class="goApp" onclick="downLoadApp()"><img src="https://kx-youhuiquan.oss-cn-beijing.aliyuncs.com/shuangshiyi/commodityListFirst/goApp.png" /></div>`;
  107. }
  108. })
  109. $('.swiper-slide-two').html(pageArrHtml[0])
  110. $('.swiper-slide-three').html(pageArrHtml[1])
  111. $('.swiper-slide-four').html(pageArrHtml[2])
  112. $('.swiper-slide-five').html(pageArrHtml[3])
  113. $('.swiper-slide-six').html(pageArrHtml[4])
  114. $('.swiper-slide-seven').html(pageArrHtml[5])
  115. goTaobaoDetail()
  116. isWeixinEvent();//判断是否是微信浏览器
  117. }
  118. function goTaobaoDetail (){
  119. $(".commodityList").find("li").click(function () {
  120. //判断是不是微信端,选择app方法获取token 还是后端提供
  121. if(navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == "micromessenger"){
  122. //微信
  123. downLoadApp();
  124. }else{
  125. //app端
  126. var goods_id = $(this).attr('goods_id');
  127. var url = $(this).attr('goods_url');
  128. var is_coupon = $(this).attr('is_coupon');
  129. writeLogH5({action:'必剁清单-单个商品',channel:'H5',goods_id:goods_id,url:window.location.href});//商品埋点
  130. openTaobao(url,is_coupon,goods_id)
  131. }
  132. })
  133. }
  134. function writeLogH5 (data) {
  135. //H5页面埋点
  136. $.ajax({
  137. type:'post',
  138. url:'/api/v2/channel/writeLogH5',
  139. dataType:'json',
  140. data:data,
  141. success:function (res) {
  142. }
  143. })
  144. }
  145. // 打开淘宝
  146. function openTaobao (url,is_coupon,goods_id) {
  147. var param = {"taobaoUrl" : url}
  148. param = JSON.stringify(param)
  149. try{
  150. if(navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)){
  151. window.webkit.messageHandlers.app_h5_open_taobao_url.postMessage(param);
  152. }
  153. if(navigator.userAgent.match(/android/i)){
  154. obj4H5.app_h5_open_taobao_url(param);
  155. }
  156. }catch(e){
  157. //TODO handle the exception
  158. getTaoKouLing(goods_id,is_coupon)
  159. copyPassword()
  160. }
  161. }
  162. //分享到微信url
  163. function shareWechatUrl () {
  164. writeLogH5({action:'必剁清单-分享',channel:'H5',url:window.location.href});//分享埋点
  165. var param = {
  166. "shareImageUrl" : "https://kx-youhuiquan.oss-cn-beijing.aliyuncs.com/shuangshiyi/commodityListFirst/shareWechat.png",
  167. "shareTitle" : "我剁手了,你呢?",
  168. "shareDescirpt":"终于找到一份双十一抢购清单,平台大额券+给力双十一活动,双重折扣优惠到底!",
  169. "shareUrl":window.location.href,//详情链接
  170. "shareType":"1" //1:微信好友 2:朋友圈
  171. }
  172. param = JSON.stringify(param)
  173. try{
  174. if(navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)){
  175. window.webkit.messageHandlers.app_h5_wx_share_url.postMessage(param);
  176. }
  177. if(navigator.userAgent.match(/android/i)){
  178. obj4H5.app_h5_wx_share_url(param);
  179. }
  180. }catch(e){
  181. showMsg("先更新,再分享哦~")
  182. }
  183. }
  184. //点击复制淘口令
  185. function getTaoKouLing(goods_id,is_coupon){
  186. $.ajax({
  187. type: "post",
  188. url: "/api/v2/adzoneCreate/h5CopyOfTheNaughtyPassword",
  189. headers:{
  190. source : 6000
  191. },
  192. data:{
  193. goods_id: goods_id ,
  194. is_coupon : is_coupon
  195. },
  196. success:function(res){
  197. if(res.errno == 0 && res.rst){
  198. var taokouling =res.rst.data;
  199. $("#taokouling").text(taokouling);
  200. }
  201. }
  202. })
  203. }
  204. //复制淘口令
  205. function copyPassword() {
  206. var data=document.getElementById("taokouling").innerHTML;
  207. if(data == ''){
  208. return;
  209. }
  210. console.log(data)
  211. copy_2.innerHTML = data;
  212. copy_1.setAttribute('value',data)
  213. if(Boolean(navigator.userAgent.match(/(iPhone|iPod|iPad);?/i))){
  214. //区分iPhone设备
  215. window.getSelection().removeAllRanges();//这段代码必须放在前面否则无效
  216. var Url2=document.getElementById("copy_2");//要复制的节点
  217. var range = document.createRange();
  218. //选中需要复制的节点
  219. range.selectNode(Url2);
  220. //执行选中元素
  221. window.getSelection().addRange(range);
  222. //执行copy操作
  223. var successful = document.execCommand("copy");
  224. //移除选中的元素
  225. window.getSelection().removeAllRanges();
  226. }else{
  227. var Url2=document.getElementById("copy_1");//要复制的节点
  228. Url2.select();//选择对象
  229. document.execCommand("Copy");//执行浏览器复制命令
  230. }
  231. showMsg('复制淘口令成功,请打开淘宝查看商品')
  232. }
  233. /**
  234. * [showMsg 提示各种错误信息,3s后消失]
  235. */
  236. function showMsg(msg) {
  237. var msgBox = document.getElementsByClassName('alert-info')[0];
  238. msgBox.getElementsByTagName("p")[0].innerHTML=msg;
  239. msgBox.style.display="block";
  240. setTimeout(function() {
  241. msgBox.style.display="none";
  242. }, 2000);
  243. }
  244. //判断是否是微信浏览器
  245. function isWeixinEvent () {
  246. //判断是不是微信端,选择app方法获取token 还是后端提供
  247. if(navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == "micromessenger"){
  248. //微信
  249. $(".shareGo").css("display","none");
  250. $(".goApp").css("display","block");
  251. }else{
  252. //app端
  253. $("#goApp").css("display","none");
  254. }
  255. }
  256. function downLoadApp () {
  257. window.location.href = 'http://a.app.qq.com/o/simple.jsp?pkgname=com.kuxuan.coupon_packet'
  258. }