goto.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466
  1. $(".banner-slider").slick({
  2. speed: 800,
  3. arrows: false,
  4. autoplay: true,
  5. });
  6. // // gototop 下滑效果
  7. $(".arrow").hide();
  8. $(window).scroll(function () {
  9. var y = window.scrollY;
  10. if (y > 10) {
  11. $(".arrow").show();
  12. } else {
  13. $(".arrow").hide();
  14. }
  15. });
  16. $(".content1-right").slick({
  17. dotsClass: 'slick-dots',
  18. dots: true,
  19. speed: 1000,
  20. arrows: false,
  21. autoplay: true,
  22. });
  23. // content輪播圖片偵測效果
  24. $(".text-1").addClass("contant-toggle");
  25. $(".content1-right").on('beforeChange', function (event, slick, currentSlide, nextSlide) {
  26. console.log('beforeChangeEvent: currenSlide=' + currentSlide + ', nextSlide= ' + nextSlide);
  27. if (nextSlide == 1) {
  28. $(".text-1").removeClass("contant-toggle");
  29. $(".text-2").addClass("contant-toggle");
  30. $(".text-3").removeClass("contant-toggle");
  31. } else if (nextSlide == 2) {
  32. $(".text-2").removeClass("contant-toggle");
  33. $(".text-1").removeClass("contant-toggle");
  34. $(".text-3").addClass("contant-toggle");
  35. } else if (nextSlide == 0) {
  36. $(".text-2").removeClass("contant-toggle");
  37. $(".text-1").addClass("contant-toggle");
  38. $(".text-3").removeClass("contant-toggle");
  39. }
  40. });
  41. // $( ".text2" ).hover( function() {
  42. // $(".content1-right").slick('slickGoTo',1);
  43. // });
  44. // $( ".text1" ).hover( function() {
  45. // $(".content1-right").slick('slickGoTo',0);
  46. // });
  47. // $( ".text3" ).hover( function() {
  48. // $(".content1-right").slick('slickGoTo',2);
  49. // });
  50. // $( ".text-2" ).hover( function() {
  51. // $(".content1-right").slick('slickGoTo',1);
  52. // });
  53. // $( ".text-1" ).hover( function() {
  54. // $(".content1-right").slick('slickGoTo',0);
  55. // });
  56. // $( ".text-3" ).hover( function() {
  57. // $(".content1-right").slick('slickGoTo',2);
  58. // });
  59. // $( ".text-2" ).click( function() {
  60. // $(".content1-right").slick('slickGoTo',1);
  61. // });
  62. // $( ".text-1" ).click( function() {
  63. // $(".content1-right").slick('slickGoTo',0);
  64. // });
  65. // $( ".text-3" ).click( function() {
  66. // $(".content1-right").slick('slickGoTo',2);
  67. // });
  68. var emailPattern = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  69. function submit() {
  70. // let loc = $( "#loc option:selected" ).text();
  71. let loc = $("#loc").val();
  72. let h_class = $("#h_class").val();
  73. let size = $("#size").val();
  74. let name = $("#name").val();
  75. let email = $("#email").val();
  76. let phone = $("#phone").val();
  77. let version = $("#version").val();
  78. // console.log(loc);
  79. if (name == null) {
  80. alert('請填寫姓名');
  81. return;
  82. };
  83. if (email == null) {
  84. alert('請填寫email');
  85. return;
  86. }else if(!emailPattern.test(email)){
  87. alert('請填寫正確的email格式');
  88. return;
  89. };
  90. if (phone == "") {
  91. alert('請填寫連絡電話');
  92. return;
  93. } else if (!/^[09]{2}[0-9]{8}$/.test(phone)) {
  94. alert('請填寫正確的手機格式');
  95. return;
  96. };
  97. if (loc == null) {
  98. alert('請填寫所在區域');
  99. return;
  100. };
  101. if (h_class == null) {
  102. alert('請填寫房屋類型');
  103. return;
  104. };
  105. if (size == null) {
  106. alert('請填寫房屋實際坪數');
  107. return;
  108. };
  109. /* var formRef = $('#form1').serializeArray();
  110. // var jsonString = JSON.stringify(formRef);*/
  111. // $.fn.serializeObject = function () {
  112. // var o = {};
  113. // var a = this.serializeArray();
  114. // o["id"] = 0;
  115. // o["time_stamp"] = "";
  116. // $.each(a, function () {
  117. // if (o[this.name]) {
  118. // if (!o[this.name].push) {
  119. // o[this.name] = [o[this.name]];
  120. // }
  121. // o[this.name].push(this.value || '');
  122. // } else {
  123. // o[this.name] = this.value || '';
  124. // }
  125. // });
  126. // return o;
  127. // };
  128. // var jsonInfo = $('.contact-form1').serializeObject();
  129. // var jsonString = JSON.stringify(jsonInfo);
  130. // console.log(jsonString);
  131. let formdata = '';
  132. formdata = '{"email": "' + email + '",'
  133. formdata += '"name": "' + name + '",'
  134. formdata += '"phone": "' + phone + '",'
  135. formdata += '"loc": "' + loc + '",'
  136. formdata += '"h_class": "' + h_class + '",'
  137. formdata += '"version": "' + version + '",'
  138. formdata += '"id": "' + 0 + '",'
  139. formdata += '"time_stamp": "' + 0 + '",'
  140. formdata += '"size": "' + size + '"}';
  141. console.log(formdata);
  142. $('#submitbutton').text('表單送出中,請稍後');
  143. $.ajax({
  144. type: 'POST',
  145. url: 'https://go.hhh.com.tw:8002/deco_request_detail',
  146. data: formdata,
  147. dataType: 'json',
  148. // async: false,
  149. success: function (data) {
  150. console.log('送出成功: ' + data);
  151. if (data == 0) {
  152. if ($('#credit').prop("checked")) {
  153. $.ajax({
  154. type: 'POST',
  155. url: 'https://api.ptt.cx:9999/hhh/mail/deco/v2',
  156. data: formdata,
  157. dataType: 'json',
  158. contentType: 'application/json; charset=utf-8',
  159. async: false,
  160. success: function (res) {
  161. console.log('送出成功');
  162. },
  163. error: function (error) {
  164. console.error(error);
  165. console.log('送出失敗');
  166. }
  167. });
  168. }
  169. // alert("送出成功");
  170. } else if (data == 1) {
  171. alert("此email已填過表單");
  172. } else if (data == 2) {
  173. alert("此phone已填過表單");
  174. } else if (data == 3) {
  175. alert("此email、phone已填過表單");
  176. }
  177. location.href = "./index_complete_line.html";
  178. },
  179. beforeSend: function () {
  180. console.log('beforeSend');
  181. },
  182. complete: function () {
  183. console.log('complete');
  184. },
  185. error: function (jqXHR, textStatus, errorThrown) {
  186. console.log(JSON.stringify(jqXHR));
  187. console.log("AJAX errr: " + textStatus + ' : ' + errorThrown);
  188. console.log('送出失敗: ' + jqXHR.responseText);
  189. alert("送出失敗");
  190. }
  191. });
  192. return false;
  193. }
  194. // $(".contact-form1").submit(function (e) {
  195. // if ($('#credit').prop("checked")) {
  196. // $.fn.serializeObject = function () {
  197. // var o = {};
  198. // var a = this.serializeArray();
  199. // // o["id"] = 0;
  200. // // o["time_stamp"] = "";
  201. // $.each(a, function () {
  202. // if (o[this.name]) {
  203. // if (!o[this.name].push) {
  204. // o[this.name] = [o[this.name]];
  205. // }
  206. // o[this.name].push(this.value || '');
  207. // } else {
  208. // o[this.name] = this.value || '';
  209. // }
  210. // });
  211. // return o;
  212. // };
  213. // var jsonInfo = $('.contact-form1').serializeObject();
  214. // var jsonString = JSON.stringify(jsonInfo);
  215. // console.log(jsonString);
  216. // var http = new XMLHttpRequest();
  217. // var url = 'http://api.ptt.cx:9998/hhh/mail/deco/v2';
  218. // var params = '';
  219. // http.open('POST', url, true);
  220. // //Send the proper header information along with the request
  221. // http.setRequestHeader('Content-type', 'application/x-www-form-unlencoded');
  222. // http.onreadystatechange = function () {//Call a function when the state changes.
  223. // if (http.readyState == 4 && http.status == 200) {
  224. // alert(http.responseText);
  225. // }
  226. // }
  227. // http.send(params);
  228. // $.ajax({
  229. // type: 'POST',
  230. // url: 'https://api.ptt.cx:9999/hhh/mail/deco/v2',
  231. // data: jsonString,
  232. // dataType: 'json',
  233. // contentType: 'application/json; charset=utf-8',
  234. // success: function (res) {
  235. // alert('送出成功');
  236. // },
  237. // error: function (error) {
  238. // console.error(error);
  239. // alert('送出失敗');
  240. // }
  241. // });
  242. // }
  243. // return false;
  244. // });
  245. $("*").each(function (index, element) {
  246. // 此元素被點選後執行
  247. $(this).click(function (e) {
  248. // 取得被點選元素的屬性:data-gt-target
  249. var target = $(this).attr("data-gt-target");
  250. var duration = $(this).attr("data-gt-duration");
  251. var offset = $(this).attr("data-gt-offset");
  252. // JS 語法:判斷式
  253. // if (條件) {程式區塊}
  254. // 當條件成立,會執行程式區塊
  255. // 如果 目標有資料 才會執行 { } 內的程式
  256. // 避免出現 undefine (未定義 - 不存在的資料)
  257. if (target) {
  258. //console.log("目標:" + target);
  259. //console.log("時間:" + duration);
  260. //console.log("位移:" + offset);
  261. // 上方位置 = 目標區塊.位移().上方位置
  262. var top = $(target).offset().top;
  263. //console.log("要前往元素的上方位置:" + top);
  264. // 網頁元素.停止().動畫({ 上方捲動:指定元素 - 位移},持續時間)
  265. // parseInt() 將文字轉為數字
  266. $("html").stop().animate({
  267. scrollTop: top - offset
  268. }, parseInt(duration));
  269. }
  270. });
  271. });
  272. // 避免動畫與使用者滾輪衝突
  273. // html 在滾動滾輪時 停止 html 所有效果
  274. $("html").on("mousewheel", function () {
  275. $("html").stop();
  276. });
  277. $(document).ready(function () {
  278. $("#date").datepicker();
  279. });
  280. window.fbAsyncInit = function () {
  281. FB.init({
  282. appId: '1388696554848391', // 填入 FB APP ID
  283. cookie: true,
  284. xfbml: true,
  285. version: 'v11.0'
  286. });
  287. FB.getLoginStatus(function (response) {
  288. statusChangeCallback(response);
  289. });
  290. };
  291. // 處理各種登入身份
  292. function statusChangeCallback(response) {
  293. console.log(response);
  294. var target = document.getElementById("FB_STATUS_2"),
  295. html = "";
  296. // 登入 FB 且已加入會員
  297. if (response.status === 'connected') {
  298. html = "已登入 FB,並加入 WFU BLOG DEMO 應用程式<br/>";
  299. FB.api('/me?fields=id,name,email', function (response) {
  300. console.log('FB API回傳資料: ' + JSON.stringify(response));
  301. if (response.id) {
  302. // 設定欄位預設值
  303. document.getElementById("email").value = response.email;
  304. document.getElementById("name").value = response.name;
  305. // 隱藏FB登入按鈕
  306. document.getElementById("fb_login").style.display = 'none';
  307. }
  308. });
  309. }
  310. // 登入 FB, 未偵測到加入會員
  311. // else if (response.status === "not_authorized") {
  312. // target.innerHTML = "已登入 FB,但未加入 WFU BLOG DEMO 應用程式";
  313. // }
  314. // 未登入 FB
  315. // else {
  316. // target.innerHTML = "未登入 FB";
  317. // }
  318. }
  319. // 點擊登入
  320. $("#fb_login").click(function () {
  321. // 進行登入程序
  322. FB.login(function (response) {
  323. statusChangeCallback(response);
  324. }, {
  325. scope: 'public_profile,email'
  326. },
  327. );
  328. });
  329. // 點擊登出
  330. // $("#FB_logout").click(function() {
  331. // FB.logout(function(response) {
  332. // statusChangeCallback(response);
  333. // });
  334. // });
  335. // 載入 FB SDK
  336. (function (d, s, id) {
  337. var js, fjs = d.getElementsByTagName(s)[0];
  338. if (d.getElementById(id)) return;
  339. js = d.createElement(s);
  340. js.id = id;
  341. js.src = "https://connect.facebook.net/zh_TW/sdk.js";
  342. fjs.parentNode.insertBefore(js, fjs);
  343. }(document, 'script', 'facebook-jssdk'));
  344. $(function () {
  345. var dateToday = new Date();
  346. //jQuery datepicker 設定限制日期最小最大 minDate maxDate hideIfNoPrevNext
  347. $(".datepicker").datepicker({
  348. //顯示上個月日期 及下個月日期 ,但是不可選的。
  349. //default:false
  350. showOtherMonths: true,
  351. // 設置當沒有上一個/下一個可選擇的情況下,隱藏掉相應的按鈕。(默認為不可用)
  352. //配合有設定最大最小時使用
  353. //default:false
  354. hideIfNoPrevNext: true,
  355. minDate: dateToday,
  356. // 設置一個最大的可選日期。可以是Date對象,或者是數字(從今天算起,例如+7),
  357. //或者有效的字符串('y'代表年, 'm'代表月, 'w'代表周, 'd'代表日, 例如:'+1m +7d')。
  358. });
  359. });