new.js 18 KB

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