new.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604
  1. var ProductId = "",
  2. ProductIdCountDown = "",
  3. ProductAttrId = [],
  4. ProductAttrInfo = 0;
  5. $(document).ready(function () {
  6. init();
  7. $(window).scroll(WindowScroll);
  8. imgShow();
  9. });
  10. init = function () {
  11. getProductInfo();
  12. }
  13. var getProductInfo = function () {
  14. //var pid = window.location.pathname.substr(1) || getUrlParam("pid");
  15. var pid = getUrlParam("pid") || window.location.pathname.substr(1);
  16. var parameter = urlEncode(["SelectProduct", pid]);
  17. $.ajax({
  18. type: "post",
  19. url: "/malai/php/index.php",
  20. data: {mode: parameter},
  21. dataType: "json",
  22. success: function (data) {
  23. $("#PageLoading").css({"display": "none"});
  24. $("#PageWarp").css({"display": "block"});
  25. printProductInfo(data[0][0]);
  26. PrintProductAttribute(data[0][0].ProductAttr);
  27. }
  28. });
  29. }
  30. var printProductInfo = function (data) {
  31. ProductAttrId = data;
  32. ProductId = data.ProductId;
  33. ProductIdCountDown = data.CountDown;
  34. $("#ProductName").html(data.ProductName);
  35. $("#ProductPrice").html(Math.ceil(data.ProductPrice));
  36. $("#ColorPrice").html("฿" + Math.ceil(data.ProductPrice));
  37. $("#ProductPrimeCost").html(Math.ceil(data.ProductPrimeCost));
  38. // $("#ProductInfo").html(data.ProductInfo);
  39. $("#ProductInfo").html(unescape(data.ProductInfo));
  40. $("#Discount").html(data.Discount);
  41. $("#Sold").html(data.Sold);
  42. $("#Promotion").html(data.Promotion);
  43. $("#ProductInfo img").css({"width":"100%","height":"auto"});
  44. // countTime(ProductIdCountDown);
  45. // countDown(ProductIdCountDown);
  46. setInterval(function () {
  47. freshTime();
  48. }, 1000);
  49. var banner = JSON.parse(data.ProductAttr)["7b824b9c-738b-11e8-a479-0610c52349b6"],
  50. color = JSON.parse(data.ProductAttr)["69d4e108-738a-11e8-a479-0610c52349b6"],
  51. size = JSON.parse(data.ProductAttr)["d6d6361b-acea-11e8-bbc6-0a4b7569e232"],
  52. classs = JSON.parse(data.ProductAttr)["cfb738c4-bff6-11e8-bbc6-0a4b7569e232"],
  53. comment = JSON.parse(data.ProductAttr)["d5cca263-c224-11e8-bbc6-0a4b7569e232"];
  54. $("#Color").html("");
  55. for (var i in color) {
  56. for (var j in color[i]) {
  57. var a = '<a _src=' + color[i][j] + ' onclick = itemClick(this)>' + j + '</a>';
  58. $("#Color").append($(a));
  59. }
  60. }
  61. $("#Color a").eq(0).addClass("checked");
  62. $("#ColorBanner").attr("src", $("#Color a").eq(0).attr("_src"));
  63. // ProductAttrId.push(escape($("#Color a").eq(0).html()), escape($("#Color a").eq(0).attr("_src")));
  64. if (size && !$.isEmptyObject(size)) {
  65. for (var i in size) {
  66. for (var j in size[i]) {
  67. var a = '<a onclick = itemClick(this)>' + size[i][j] + '</a>';
  68. $("#Size").append($(a));
  69. }
  70. }
  71. $("#Size a").eq(0).addClass("checked");
  72. }
  73. else {
  74. $("#Size").parent().hide();
  75. }
  76. var num = 0;
  77. for (var j in banner) {
  78. num++;
  79. }
  80. for (var i in banner) {
  81. for (var j in banner[i]) {
  82. var li = '<li class="item slide"><img src="' + banner[i][j] + '"/></li>';
  83. $(".scroller").append(li);
  84. var i = '<i><span class="pagination">' + (parseInt(j) + 1) + '/' + num + '</span></i>';
  85. $(".nav").append(i);
  86. $(".nav i").eq(0).addClass("current");
  87. }
  88. }
  89. bannerMove();
  90. var mp4 = $("#ProductInfo img.edui-upload-video"), el;
  91. for (var i = 0; i < mp4.length; i++) {
  92. var url = mp4.eq(i).attr("_url");
  93. el = '<video src=' + url + ' controls="controls" preload="auto" width = "100%"></video>';
  94. mp4.eq(i).after(el);
  95. mp4.eq(i).remove();
  96. }
  97. mp4.remove();
  98. //就是这一块
  99. if (comment && !$.isEmptyObject(comment)) {
  100. $("#comment").eq(0).html("");
  101. for (var i in comment) {
  102. //for (var j = 0;j<=i;j++) {
  103. $("#comment").eq(0).append(
  104. $('<li>' +
  105. '<div style="margin-bottom:8px; color: #999;font-size:12px">' +
  106. '<span>' + comment[i].name + '</span>' +
  107. '<span style="float: right;">' +
  108. '<span lass="reviewStar size1 star5">' + comment[i].time + '</span>' +
  109. '</span>' +
  110. '</div>' +
  111. '<div>' +
  112. '<p style="margin-bottom: 8px;font-size: 14px;word-break: break-all;">' + comment[i].text + '</p>' +
  113. '<div class="imgg" style="margin-bottom:10px;overflow: hidden">' + '</div>' +
  114. // '<p style="position: relative;min-height: 10px;">' +
  115. // '<span style="position: absolute;bottom: 0;right: 15px;color:#8f8f94">' + comment[i].time + '</span>' +
  116. // '</p>' +
  117. '</div>' +
  118. '</li>'
  119. ));
  120. if (comment[i].imgurl != "") {
  121. var CreateCommentImg = function (el, img, flag) {
  122. img = flag ? '/malai/' + img : img;
  123. // var div = '<img class="pimg" style="z-index:0;" src="' + img + '">';
  124. // div.onclick=function(){
  125. // var _this = $(this);//将当前的pimg元素作为_this传入函数
  126. // imgShow("#outerdiv", "#innerdiv", "#bigimg", _this);
  127. // }
  128. $('<img>', {src: img,}).css({zIndex: 0}).appendTo($(".imgg").eq(i));
  129. // $(".imgg").eq(i).append(div);
  130. }
  131. var img = comment[i]['imgurl'].split(",");
  132. img.forEach(function (val) {
  133. CreateCommentImg(el, val, false);
  134. });
  135. }
  136. //}
  137. }
  138. // $(".u-format .items").eq(0).eq(0).addClass("tab-sel");
  139. }
  140. else {
  141. // Roll();
  142. $(".ProductEvaluate")[0].style.display = "none";
  143. }
  144. }
  145. var bannerMove = function () {
  146. var glide = new Glide('.module-preview ', {
  147. autoplay: 3000
  148. });
  149. glide.on(['mount', 'run.after'], function () {
  150. $(".nav i").removeClass("current");
  151. $(".nav i").eq(glide._i).addClass("current");
  152. })
  153. glide.mount();
  154. }
  155. var ToTop = function () {
  156. $("html,body").scrollTop(0);
  157. }
  158. var ToProductInfo = function () {
  159. $("html,body").scrollTop($(".ProductInfo").offset().top - 50);
  160. // $("html,body").animate({scrollTop: $(".ProductInfo").offset().top - 50});
  161. }
  162. var ToProductEvaluate = function () {
  163. $("html,body").scrollTop($(".ProductEvaluate").offset().top);
  164. // $("html,body").animate({scrollTop: $(".ProductEvaluate").offset().top});
  165. }
  166. function freshTime() {
  167. var arr = ProductIdCountDown.split(/[- : \/]/);
  168. var endtime = new Date(arr[0], arr[1] - 1, arr[2], arr[3], arr[4], arr[5]);
  169. var nowtime = new Date();
  170. var lefttime = parseInt(endtime.getTime() - nowtime.getTime());//这是毫秒,如果再/1000就是秒
  171. if (lefttime <= 0) {
  172. var toyear = new Date().getFullYear();
  173. var tomonth = new Date().getMonth() + 1;
  174. var today = new Date().getDate() + 2;
  175. arr[0] = toyear;
  176. arr[1] = tomonth;
  177. arr[2] = today;
  178. endtime = new Date(arr[0], arr[1] - 1, arr[2], arr[3], arr[4], arr[5]);
  179. lefttime = parseInt(endtime.getTime() - nowtime.getTime());//这是毫秒,如果再/1000就是秒
  180. }
  181. var hm = 60 * 60 * 1000;
  182. var h = parseInt((lefttime / hm));
  183. var mm = 60 * 1000;
  184. var m = parseInt((lefttime / mm) % 60);
  185. var s = parseInt((lefttime / 1000) % 60);
  186. m = checktime(m);
  187. s = checktime(s);
  188. $("#J_TimeHour").html(h);
  189. $("#J_TimeMin").html(m);
  190. $("#J_TimeSec").html(s);
  191. if (lefttime < 0) {
  192. $("#J_TimeHour").html(0);
  193. $("#J_TimeMin").html(0);
  194. $("#J_TimeSec").html(0);
  195. }
  196. }
  197. //倒计时效果js代码
  198. function checktime(i) {
  199. if (i < 10) {
  200. i = "0" + i;
  201. }
  202. else {
  203. i = i;
  204. }
  205. return i;
  206. }
  207. var WindowScroll = function () {
  208. var top = $(document).scrollTop();
  209. if (top > $(".group-warp").eq(0).height() * 0.2) {
  210. $("#head").addClass("transparent");
  211. }
  212. if (top >= $(".ProductInfo").offset().top - 100) {
  213. $("#head").addClass("transparent");
  214. $("#head li").removeClass("active");
  215. $("#head li").eq(1).addClass("active");
  216. }
  217. // if (top >= $(".ProductEvaluate").offset().top - 500) {
  218. // $("#head").addClass("transparent");
  219. // $("#head li").removeClass("active");
  220. // $("#head li").eq(2).addClass("active");
  221. // }
  222. // if (top < $(".ProductEvaluate").offset().top - 500) {
  223. // $("#head").addClass("transparent");
  224. // $("#head li").removeClass("active");
  225. // $("#head li").eq(1).addClass("active");
  226. // }
  227. if (top <= $(".ProductInfo").offset().top - 100) {
  228. $("#head").addClass("transparent");
  229. $("#head li").removeClass("active");
  230. $("#head li").eq(0).addClass("active");
  231. }
  232. if (top <= $(".group-warp").eq(0).height() * 0.2) {
  233. $("#head").removeClass("transparent");
  234. }
  235. }
  236. var showPage = function () {
  237. // if ($(".widgets-cover").hasClass("show")) {
  238. // $(".widgets-cover").removeClass("show");
  239. // $("body").css({"position": "static", "top": "0px", "scroll-behavior": "unset"});
  240. // }
  241. // else {
  242. // $("body").css({"position": "fixed", "top": "0px", "scroll-behavior": "unset"});
  243. // $(".widgets-cover").addClass("show");
  244. // }
  245. if ($("#page-order").css("display") == "block") {
  246. $("#PageWarp").css({display: "block"});
  247. $("#page-order").animate({left: '100%'}, "", function () {
  248. $("#page-order").css({display: "none"});
  249. });
  250. }
  251. else {
  252. $("#page-order").css({display: "block"});
  253. $("#page-order").animate({left: '0'}, "", function () {
  254. $("#PageWarp").css({display: "none"});
  255. });
  256. }
  257. }
  258. /*********************************************下单页面事件区域*************************************************/
  259. var PrintProductAttribute = function (obj) {
  260. obj = JSON.parse(obj);
  261. var classs = obj['cfb738c4-bff6-11e8-bbc6-0a4b7569e232'],
  262. color = obj['69d4e108-738a-11e8-a479-0610c52349b6'],
  263. size = obj['d6d6361b-acea-11e8-bbc6-0a4b7569e232'];
  264. var
  265. colorel = $(".count_atrr .con"),
  266. sizeel = $(".count_size .con");
  267. // var isclasss = true;
  268. //打印图片颜色分类
  269. colorel.html("");
  270. for (var i in color) {
  271. for (var j in color[i]) {
  272. var div = '<div class="tab" onclick="ColorClick(this,\'' + j + '\')"><img src="' + color[i][j] + '"></div>';
  273. colorel.append($(div));
  274. if (i == 0) {
  275. // ColorClick(colorel.find(".tab").eq(0), j);
  276. colorel.find(".tab").eq(0).addClass("tab-sel");
  277. colorel.eq(0).parent().find("span").html(j);
  278. }
  279. }
  280. }
  281. //打印尺寸分类
  282. if (size && !$.isEmptyObject(size)) {
  283. sizeel.html("");
  284. for (var i in size) {
  285. for (var j in size[i]) {
  286. var div = '<label class="tab" onclick="SizeClick(this)"><span>' + size[i][j] + '</span></label>';
  287. sizeel.append($(div));
  288. if (i == 0) {
  289. sizeel.find(".tab").eq(0).addClass("tab-sel");
  290. }
  291. }
  292. }
  293. }
  294. else {
  295. sizeel.parent().remove();
  296. }
  297. var classsel = $(".count_classs .con"), classs_obj, classs_a;
  298. //打印套餐
  299. if ($.isEmptyObject(classs)) {
  300. $(".count_classs .con").parent().remove();
  301. ProductAttrId.OrderNum = 1;
  302. }
  303. else {
  304. classsel.html("");
  305. $.each(classs, function (i, val) {
  306. ProductAttrInfo++;
  307. classs_obj = val;
  308. $.each(val, function (j, val1) {
  309. if (j == "type") {
  310. if ($(".dt-paramselect .meal").length != parseInt(val1)) {
  311. while (parseInt(val1) > $(".dt-paramselect .meal").length) {
  312. classs_a = $(".meal").eq(0).clone();
  313. classs_a.hide();
  314. $(".dt-paramselect").append(classs_a);
  315. }
  316. // for (var k = 0; k < parseInt(val1) - $(".dt-paramselect .meal").length; k++) {
  317. // classs_a = $(".meal").eq(0).clone();
  318. // classs_a.hide();
  319. // $(".dt-paramselect").append(classs_a);
  320. // }
  321. }
  322. }
  323. else if (j != "type") {
  324. var div = '<label class="tab" onclick="ClasssClick(this,\'' + j + '\',\'' + val.type + '\')"><span>' + val1 + '</span></label>';
  325. classsel.append($(div));
  326. // div.onclick = function () {
  327. // alert();
  328. // }
  329. // $(div).bind('click', function () {
  330. // alert();
  331. // });
  332. }
  333. });
  334. });
  335. $(".dt-paramselect").append($(".u-fornum"));
  336. $(".count_classs label").eq(0).click();
  337. /*
  338. if (ProductAttrInfo == 1) {
  339. ClasssClick($(".count_classs label").eq(0), ProductAttrId.ProductPrice, classs[0].type);
  340. }
  341. else {
  342. ClasssClick($(".count_classs label").eq(0), ProductAttrId.ProductPrice, ProductAttrInfo);
  343. }
  344. */
  345. // for (var i in classs) {
  346. // for (var j in classs[i]) {
  347. // if (j == "type") {
  348. // // $(".u-fornum").before(colorel.parent().clone().hide());
  349. // // $(".u-fornum").before(sizeel.parent().clone().hide());
  350. // $(".secondsetmeal").append(colorel.parent().clone());
  351. // $(".secondsetmeal").append(sizeel.parent().clone());
  352. // }
  353. // else if (j != "type") {
  354. // var div = '<label class="tab" onclick="ClasssClick(this,\'' + j + '\')"><span>' + classs[i][j] + '</span></label>';
  355. // classsel.append($(div));
  356. // }
  357. // }
  358. // }
  359. // ClasssClick($(".count_classs label").eq(0));
  360. }
  361. console.log(obj);
  362. }
  363. /**/
  364. var ClasssClick = function (el, val, type) {
  365. $(el.parentNode).find(".tab").removeClass("tab-sel");
  366. $(el).addClass("tab-sel");
  367. $(".meal").hide();
  368. $(".meal").eq(0).show();
  369. for (var i = 0; i < parseInt(type); i++) {
  370. $(".meal").eq(i).show();
  371. }
  372. type ? ProductAttrId.OrderNum = type : "";
  373. val ? ProductAttrId.ProductPrice = val : "";
  374. }
  375. /*选择颜色点击事件*/
  376. var ColorClick = function (el, val) {
  377. $(el.parentNode).find(".tab").removeClass("tab-sel");
  378. $(el).addClass("tab-sel");
  379. $(el.parentNode.parentNode).find("span").html(val);
  380. // $(el.parentNode).children().removeClass("checked");
  381. // // $("#Color a").removeClass("checked");
  382. // $(el).addClass("checked");
  383. // if ($(el.parentNode).attr("id") === "Color") {
  384. // $("#ColorBanner").attr("src", $(el).attr("_src"));
  385. // }
  386. // var banner = escape($("#ColorBanner").attr("src")),
  387. // color = escape($("#Color a.checked").html()),
  388. // size = escape($("#Size a.checked").html());
  389. // ProductAttrInfo = [];
  390. // ProductAttrInfo.push(banner, color, size);
  391. }
  392. /*选择尺寸点击事件*/
  393. var SizeClick = function (el) {
  394. $(el.parentNode).find(".tab").removeClass("tab-sel");
  395. $(el).addClass("tab-sel");
  396. }
  397. /*购买数量添加*/
  398. var addnumber = function () {
  399. $('.textWrap .num').html(parseInt($('.textWrap .num').html()) + 1);
  400. }
  401. /*购买数量减少*/
  402. var minnumber = function () {
  403. if (parseInt($('.textWrap .num').html()) > 1) {
  404. $('.textWrap .num').html(parseInt($('.textWrap .num').html()) - 1);
  405. }
  406. }
  407. /*点击购买函数*/
  408. var goShop = function () {
  409. // var num = parseInt($("#number").val()),
  410. // attr = ProductAttrInfo.join(),
  411. // str = "shop.html?pid=" + ProductId + "&attr=" + attr + "&num=" + num;
  412. var num = parseInt($("#number").text()),
  413. obj = [],
  414. attr = {},
  415. numobj = {},
  416. url = "shop.html?pid=" + ProductId + "&attr=",
  417. str = "";
  418. numobj["Number"] = num;
  419. numobj["Money"] = ProductAttrId.ProductPrice;
  420. obj.push(numobj);
  421. for (var i = 0; i < ProductAttrId.OrderNum; i++) {
  422. attr = {};
  423. attr["color"] = $(".meal").eq(i).find(".tt span").eq(0).text();
  424. attr["img"] = $(".meal").eq(i).find("div.tab-sel img").attr("src");
  425. attr["size"] = $(".meal").eq(i).find("label.tab-sel span").text();
  426. obj.push(attr);
  427. }
  428. OrderPrice = parseInt(obj[0].Number) * parseInt(obj[0].Money);
  429. //facebook购物车推广事件,请勿删除!
  430. fbq('track', 'AddToCart', {
  431. value: OrderPrice,
  432. currency: 'MYR',
  433. content_ids: 'ProductAttrId.ProductRemarks',
  434. content_type: 'product_group',
  435. });
  436. str = escape(JsonToString(obj));
  437. url += str;
  438. console.log(url);
  439. window.location.href = url;
  440. }
  441. getUrlParam = function (name) {
  442. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
  443. var r = window.location.search.substr(1).match(reg); //匹配目标参数
  444. if (r != null) return unescape(r[2]);
  445. return null; //返回参数值
  446. }
  447. urlEncode = function (arr) {
  448. var i; //循环初始化
  449. for (i = 0; i < arr.length; i++) {
  450. arr[i] = encodeURIComponent(encodeURIComponent(arr[i]));
  451. }
  452. return arr.join();
  453. }
  454. // Roll = function () {
  455. // //$(".marquee ul").css('position', 'absolute');
  456. // animate();
  457. // };
  458. // animate = function () {
  459. // var boxHeight = $('.marquee').height();
  460. // var ulHeight = $(".marquee ul").height();
  461. // $(".marquee").css('top', 0);
  462. // $(".marquee").animate({scrollTop: $(".marquee")[0].scrollTop == 0 ? (ulHeight - boxHeight) : 0}, 10000, animate);
  463. // }
  464. //json转换为string
  465. var JsonToString = function (obj) {
  466. var i,
  467. _type = false,
  468. _str = "",
  469. _type = typeof (obj); //获取类型
  470. //开始序列化
  471. if (obj == null) {
  472. }
  473. else {
  474. obj = obj.valueOf(); //获取值 同时类型也为对应
  475. if ("boolean,number".indexOf(_type) > -1) {//bool和number类型转化
  476. _str = obj.toString();
  477. }
  478. else if (_type == "string") {//json处理字符串时需要加上 "\""符号
  479. _str = "\"" + obj + "\"";
  480. }
  481. else if (typeof obj == "array") { //数组处理
  482. _str = "[";
  483. for (i = 0; i < obj.length; i++) {
  484. _str += JsonToString(obj[i]) + ((i < obj.length - 1) ? "," : "")
  485. }
  486. ;_str += "]";
  487. return _str
  488. }
  489. else {//object处理
  490. _str = "{";
  491. for (i in obj) {
  492. if (obj.hasOwnProperty(i)) {
  493. if (_str.length > 1) {
  494. _str += ","
  495. }
  496. ;_str += "\"" + i + "\":" + JsonToString(obj[i]);
  497. }
  498. }
  499. _str += "}";
  500. }
  501. return _str;
  502. }
  503. }
  504. //评论图片查看
  505. var imgShow = function () {
  506. var mySwiper = new Swiper('.swiper-container2', {
  507. loop: false,
  508. pagination: '.swiper-pagination2',
  509. });
  510. $("#comment").on("click", ".imgg img",
  511. function () {
  512. // var imgBox = $(this).parents(".imgg").find("img");
  513. var imgBox = $("#comment .imgg img");
  514. var i = $(imgBox).index(this);
  515. $(".big_img .swiper-wrapper").html("")
  516. for (var j = 0, c = imgBox.length; j < c; j++) {
  517. $(".big_img .swiper-wrapper").append('<div class="swiper-slide"><div class="cell"><img src="' + imgBox.eq(j).attr("src") + '" / ></div></div>');
  518. }
  519. mySwiper.updateSlidesSize();
  520. mySwiper.updatePagination();
  521. $(".big_img").css({
  522. "z-index": 1001,
  523. "opacity": "1"
  524. });
  525. mySwiper.slideTo(i, 0, false);
  526. return false;
  527. });
  528. $(".big_img").on("click",
  529. function () {
  530. $(this).css({
  531. "z-index": "-1",
  532. "opacity": "0"
  533. });
  534. });
  535. }