new.js 20 KB

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