goto.js 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297
  1. $("*").each(function (index, element) {
  2. // 此元素被點選後執行
  3. $(this).click(function (e) {
  4. // 取得被點選元素的屬性:data-gt-target
  5. var target = $(this).attr("data-gt-target");
  6. var duration = $(this).attr("data-gt-duration");
  7. var offset = $(this).attr("data-gt-offset");
  8. // JS 語法:判斷式
  9. // if (條件) {程式區塊}
  10. // 當條件成立,會執行程式區塊
  11. // 如果 目標有資料 才會執行 { } 內的程式
  12. // 避免出現 undefine (未定義 - 不存在的資料)
  13. if (target) {
  14. //console.log("目標:" + target);
  15. //console.log("時間:" + duration);
  16. //console.log("位移:" + offset);
  17. // 上方位置 = 目標區塊.位移().上方位置
  18. var top = $(target).offset().top;
  19. //console.log("要前往元素的上方位置:" + top);
  20. // 網頁元素.停止().動畫({ 上方捲動:指定元素 - 位移},持續時間)
  21. // parseInt() 將文字轉為數字
  22. $("html").stop().animate({
  23. scrollTop: top - offset
  24. }, parseInt(duration));
  25. }
  26. });
  27. });
  28. // 避免動畫與使用者滾輪衝突
  29. // html 在滾動滾輪時 停止 html 所有效果
  30. $("html").on("mousewheel", function () {
  31. $("html").stop();
  32. });
  33. // gotop下滑效果
  34. $(".arrow").hide();
  35. $(window).scroll(function () {
  36. var y = window.scrollY;
  37. if (y > 500) {
  38. $(".arrow").show();
  39. } else {
  40. $(".arrow").hide();
  41. }
  42. });
  43. console.log(28);
  44. window.onload=function(){
  45. function funcTest5() {
  46. $.ajax({
  47. method: "GET",
  48. url: "designer4.json",
  49. dataType: "json",
  50. async: false,
  51. })
  52. .done(function (msg) {
  53. console.log(msg);
  54. function shuffleArray(inputArray) {
  55. inputArray.sort(() => Math.random() - 0.5);
  56. }
  57. shuffleArray(msg);
  58. console.log(msg.length);
  59. // temp初始化
  60. for (var i = 0; i < msg.length; i++) {
  61. temp[i] = msg[i].id
  62. }
  63. templength = temp.length;
  64. });
  65. }
  66. var templength = 0;
  67. var des1 = [];
  68. var des2 = [];
  69. var temp = [];
  70. var numb1 = [];
  71. funcTest5();
  72. funcTest4();
  73. function funcTest4() {
  74. for (var j = 0; j < templength; j++) {
  75. des1[j] = temp[j]
  76. }
  77. console.log(des1)
  78. for (var j = 0; j < des1.length - 1; j++) {
  79. des2[j] = des1[j]
  80. }
  81. numb1[0] = des1[des1.length - 1];
  82. console.log(numb1[0]);
  83. for (var j = 0; j < des1.length - 1; j++) {
  84. numb1[j + 1] = des2[j];
  85. }
  86. for (var j = 0; j < numb1.length; j++) {
  87. temp[j] = numb1[j];
  88. }
  89. console.log(temp);
  90. var desBanner = '';
  91. var MobBanner = '';
  92. var bodyBannerDes = '';
  93. var DesignerContent = '';
  94. for (var i = 0; i < temp.length; i++) {
  95. var deslist = 0;
  96. var deslist2 = 0;
  97. deslist = get_data(temp[i]);
  98. deslist2 = get_data(temp[0]);
  99. DesignerContent += ' \
  100. <div id="'+ deslist.id + '" class="secimg col-4 col-lg-2 mx-0 px-0 border-0"><a href="./about/index.html?id=' + deslist.id + '"><img class="img-fluid"\
  101. src="'+ deslist.Designerimg + '"\
  102. alt="">\
  103. <div class="sec02-p-m p-1 mt-1 text-center">\
  104. <p class="my-0">'+ deslist.WorkName + '</p>\
  105. <p>'+ deslist.DesignerName + '</p>\
  106. </div>\
  107. </a>\
  108. </div>';
  109. }
  110. desBanner += ' \
  111. <div class="banner-des row vertical align-items-end px-0 mx-0">\
  112. <div class="banner-0 col-0 order-1 col-lg-5 order-1 pe-0">\
  113. <img class="img-fluid" src="./img/banner/bannertitle.png" alt="">\
  114. </div>\
  115. <div class="banner-1 col-5 order-3 col-lg-5 order-2 text-white text-end py-3">\
  116. <a style="text-decoration: none;color:#fff;" href="./about/index.html?id='+ deslist2.id + '"><div class="banner1-1" style="font-weight: 900;">' + deslist2.WorkName + '</div>\
  117. <p><span class="fs-5">'+ deslist2.DesignerName + '</span>設計師</p>\
  118. </a>\
  119. <button type="button" class="btn border border-white"><a target="_blank" href="tel: '+ deslist2.TollFreeCall + '"><img class="" src="img/002-phone-call.svg" alt=""></a>\</button>\
  120. <button type="button" id="'+ deslist2.id + '" data-info="' + deslist2.id + '" class="mesg btn border border-white" data-bs-toggle="modal" data-bs-target="#exampleModal"><img class="" src="img/001-blogging.svg" alt=""></button>\
  121. </div>\
  122. <div class="banner-2 col-7 order-2 col-lg-2 order-3 px-0 mx-0">\
  123. <a class="desbutton" data-info="'+ deslist2.id + '" href="./about/index.html?id=' + deslist2.id + '"><img class="img-fluid" src="' + deslist2.Designerimg + '" alt=""></a>\
  124. </div>\
  125. </div>';
  126. MobBanner += ' \
  127. <div class="banner-m row vertical align-items-end px-0 mx-0">\
  128. <div class="bannerm-0 col-12 my-5 px-0">\
  129. <img class="img-fluid" src="./img/banner/banner-mobile.png" alt="">\
  130. </div>\
  131. <div class="bannerm-2 col-7 order-2 col-lg-2 order-3 px-0 mx-0">\
  132. <a href="./about/index.html?id='+ deslist2.id + '"><img class="img-fluid" src="' + deslist2.Designerimg + '" alt=""></a>\
  133. </div>\
  134. <div class="bannerm-1 col-5 order-3 col-lg-5 order-2 text-white text-start pb-3">\
  135. <a style="text-decoration: none;color:#fff;" href="./about/index.html?id='+ deslist2.id + '">\
  136. <div class="banner1-1 pt-3 pb-1" style="font-weight: 900;">'+ deslist2.WorkName + '</div>\
  137. <p class=""><span class="fs-5">'+ deslist2.DesignerName + '</span>設計師</p>\
  138. </a>\
  139. <button type="button" class="btn border border-white"><a target="_blank" href="tel: '+ deslist2.TollFreeCall + '"><img class="" src="img/002-phone-call.svg" alt=""></a>\</button>\
  140. <button type="button" id="'+ deslist2.id + '" data-info="' + deslist2.id + '" class="mesg btn border border-white" data-bs-toggle="modal" data-bs-target="#exampleModal"><img class="" src="img/001-blogging.svg" alt=""></button>\
  141. </div>\
  142. </div > ';
  143. bodyBannerDes += ' \
  144. <img class="banner-img img-fluid" id="img_id" src="'+ deslist2.workimg[0].img + '" alt="">\
  145. ';
  146. $('.banner-des').html(desBanner);
  147. $('.banner-m').html(MobBanner);
  148. $('#bannerdes-img').html(bodyBannerDes);
  149. $('.sec01-designer').html(DesignerContent);
  150. }
  151. function get_data(id) {
  152. var A = [];
  153. $.ajax({
  154. method: "GET",
  155. url: "../designer4.json",
  156. dataType: "json",
  157. async: false,
  158. })
  159. .done(function (msg) {
  160. for (var i = 0; i < msg.length; i++) {
  161. if (msg[i].id == id) {
  162. A = msg[i]
  163. }
  164. }
  165. });
  166. return A
  167. }
  168. setInterval("funcTest4()", 1000 * 10);
  169. }
  170. $.fn.serializeObject = function () {
  171. var o = {};
  172. var a = this.serializeArray();
  173. o["id"] = 0;
  174. o["time_stamp"] = "";
  175. $.each(a, function () {
  176. if (o[this.name]) {
  177. if (!o[this.name].push) {
  178. o[this.name] = [o[this.name]];
  179. }
  180. o[this.name].push(this.value || '');
  181. } else {
  182. o[this.name] = this.value || '';
  183. }
  184. });
  185. return o;
  186. };
  187. $(".contact-form1").submit(function (e) {
  188. /* var formRef = $('#form1').serializeArray();
  189. var jsonString = JSON.stringify(formRef);*/
  190. var jsonInfo = $('.contact-form1').serializeObject();
  191. var jsonString = JSON.stringify(jsonInfo);
  192. console.log(jsonString);
  193. $.ajax({
  194. type: 'POST',
  195. url: 'https://go.hhh.com.tw:8002/deco_request_detail',
  196. data: jsonString,
  197. dataType: 'json',
  198. success: function (data) {
  199. console.log('送出成功: ' + data);
  200. if (data == 0) {
  201. alert("送出成功");
  202. } else if (data == 1) {
  203. alert("此email已填過表單");
  204. } else if (data == 2) {
  205. alert("此phone已填過表單");
  206. } else if (data == 3) {
  207. alert("此email、phone已填過表單");
  208. }
  209. location.href = "./index_complete_line.html";
  210. },
  211. beforeSend: function () {
  212. console.log('beforeSend');
  213. },
  214. complete: function () {
  215. console.log('complete');
  216. },
  217. error: function (jqXHR, textStatus, errorThrown) {
  218. console.log(JSON.stringify(jqXHR));
  219. console.log("AJAX errr: " + textStatus + ' : ' + errorThrown);
  220. console.log('送出失敗: ' + jqXHR.responseText);
  221. alert("送出失敗");
  222. }
  223. });
  224. return false;
  225. });
  226. $(function () {
  227. var dateToday = new Date();
  228. //jQuery datepicker 設定限制日期最小最大 minDate maxDate hideIfNoPrevNext
  229. $(".datepicker").datepicker({
  230. //顯示上個月日期 及下個月日期 ,但是不可選的。
  231. //default:false
  232. showOtherMonths: true,
  233. // 設置當沒有上一個/下一個可選擇的情況下,隱藏掉相應的按鈕。(默認為不可用)
  234. //配合有設定最大最小時使用
  235. //default:false
  236. hideIfNoPrevNext: true,
  237. minDate: dateToday,
  238. // 設置一個最大的可選日期。可以是Date對象,或者是數字(從今天算起,例如+7),
  239. //或者有效的字符串('y'代表年, 'm'代表月, 'w'代表周, 'd'代表日, 例如:'+1m +7d')。
  240. });
  241. });
  242. $(".mesg").click(function () {
  243. console.log(1);
  244. var desid =$(this).data("info");
  245. console.log(desid);
  246. // var desid2=String(desid);
  247. // console.log(desid2);
  248. $("#version").val(desid);
  249. // $("#version").html(desid);
  250. });