index-list-mb.js 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813
  1. let userAgent;
  2. let isSafari = false;
  3. let browserName;
  4. // pagination variables
  5. let num_per_page = 10;
  6. let n = 0;
  7. let n_video = 0;
  8. let n_columns = 0;
  9. let totalPages = {
  10. intro: 0,
  11. video: 0,
  12. columns: 0,
  13. vr360: 0,
  14. company: 0,
  15. };
  16. let filter;
  17. const urlParams = new URLSearchParams(window.location.search);
  18. let getfilter = urlParams.get('q');
  19. let cid = urlParams.get('cid');
  20. console.log(getfilter, cid);
  21. $('.likeSee__views').click(function () {
  22. window.location.href = `./index_designerList_mb.html?q=views&cid=${cid}`
  23. $(this).css('color', '#EE7800');
  24. })
  25. $('.likeSee__sort').click(function () {
  26. window.location.href = `./index_designerList_mb.html?cid=${cid}`
  27. $(this).css('color', '#EE7800');
  28. })
  29. function getpathId() {
  30. let query = window.location.search.split('?').pop();
  31. return query.split('=')[1];
  32. }
  33. function getQuery() {
  34. let query = getfilter;
  35. console.log(query);
  36. if (query == 'views') {
  37. filter = 'views';
  38. $('.likeSee__views').css('color', '#EE7800');
  39. } else {
  40. filter = 'dateSort';
  41. $('.likeSee__sort').css('color', '#EE7800');
  42. }
  43. }
  44. window.onload = function () {
  45. //window.scrollBy(0, 1);
  46. if (screen.width >= 901) {
  47. window.location.href = `../index_designerList.html?cid=${cid}`;
  48. }
  49. userAgent = navigator.userAgent;
  50. detectBrowser(userAgent);
  51. detectDirection();
  52. let result;
  53. let designer;
  54. let id = 0;
  55. $.ajax({
  56. method: "GET",
  57. // url: `./json/designers-${cid}.json`,
  58. url: `https://m3.hhh.com.tw:18686/gendesigner?id=${cid}&sort=new&page=1`,
  59. dataType: "json",
  60. }).done(function (msg) {
  61. getQuery();
  62. designer = [...msg][id];
  63. console.log(designer['Content']);
  64. if (filter == 'views') {
  65. designer['Content'][0]['Carddata'].sort(function (a, b) {
  66. return a[filter] > b[filter] ? -1 : 1;
  67. })
  68. } else {
  69. designer['Content'][0]['Carddata'].sort(function (a, b) {
  70. return a[filter] > b[filter] ? 1 : -1;
  71. })
  72. }
  73. renderinfoCard(designer);
  74. renderTab(designer['Content']);
  75. renderTabContent(designer['Content'], designer);
  76. renderModalTitle(designer['CompanyName']);
  77. console.log(filter);
  78. console.log(designer['Content'][0]['Carddata']);
  79. $(window).scroll(function () {
  80. let bottom = $("body").height() - $(window).height() - 1;
  81. if ($(window).scrollTop() >= bottom) {
  82. loadMoretest();
  83. }
  84. })
  85. // let bottom = $("body").height() - $(window).height() - 1;
  86. // if ($(window).scrollTop() >= bottom) {
  87. // loadMoretest();
  88. // }
  89. });
  90. }
  91. // var page = 1;
  92. // function loadMoretest() {
  93. // setTimeout(function () {
  94. // scroll_bottom_load_data(page);
  95. // page++;
  96. // return page
  97. // }, 500);
  98. // }
  99. function scroll_bottom_load_data(page) {
  100. $.ajax({
  101. method: "GET",
  102. url: `https://m3.hhh.com.tw:18686/gendesigner?id=${cid}&sort=new&page=${page}`,
  103. }).done(function (msg) {
  104. result = [...msg];
  105. let append = '';
  106. let d = result[0].Content[0].Carddata;
  107. // let cardcontent=[]
  108. let nowTab = document.querySelector('.infoContent .tab-pane.show');
  109. if (nowTab === document.querySelector('#pills-intro')) {
  110. for (let j = 0; j < d.length; j++) {
  111. let tagStr = ''
  112. for (let k = 0; k < d[j]['tag'].length; k++) {
  113. tagStr += `<a href="${d[j]['tag'][k]['link']}" class="card__tag" target="_blank">${d[j]['tag'][k]['name']}</a>`
  114. }
  115. append += `<div class="col-6 col-md-4">
  116. <a href="${d[j]['url']}" target="_blank">
  117. <div class="card">
  118. <div style="overflow: hidden;">
  119. <div class="card__bgImg" style="background-image: url(${d[j]['imgURL']});">
  120. </div>
  121. </div>
  122. <div class="card-body">
  123. <h5 class="card-title card__title mt-0">${d[j]['title']}</h5>
  124. <p class="card-text mb-0">
  125. ${tagStr}
  126. </p>
  127. </div>
  128. </div>
  129. </a>
  130. </div>`
  131. // var cardcontent2=cardcontent.push.d;
  132. }
  133. if (d.length === 0) {
  134. $('#loading_img').css("display", "none")
  135. }
  136. // console.log(cardcontent2);
  137. $('#pills-intro .work__row').append(append);
  138. }else if (nowTab === document.querySelector('#pills-video')) {
  139. let append = '';
  140. let d = result[0].Content[0].Carddata;
  141. for(let j = 0;j < d.length; j ++) {
  142. let tagStr = ''
  143. for(let k = 0;k < d[j]['tag'].length; k ++) {
  144. tagStr += `<a href="${d[j]['tag'][k]['link']}" class="card__tag" target="_blank">${d[j]['tag'][k]['name']}</a>`
  145. }
  146. append += `<div class="col-6 col-md-4">
  147. <a href="${d[j]['url']}" target="_blank">
  148. <div class="card">
  149. <div style="overflow: hidden;">
  150. <div class="card__bgImg" style="background-image: url(${d[j]['imgURL']});">
  151. <img src="https://hhh.com.tw/assets/images/rv_web/play.svg" alt="" width="50" height="50">
  152. </div>
  153. </div>
  154. <div class="card-body">
  155. <h5 class="card-title card__title mt-0">${d[j]['title']}</h5>
  156. <p class="card-text mb-0">
  157. ${tagStr}
  158. </p>
  159. </div>
  160. </div>
  161. </a>
  162. </div>`
  163. }
  164. if (d.length === 0) {
  165. $('#loading_img').css("display", "none")
  166. }
  167. $('#pills-video .work__row').append(append);
  168. }else if (nowTab === document.querySelector('#pills-columns')) {
  169. let append = '';
  170. let d = result[0].Content[0].Carddata;
  171. for(let j = 0;j < d.length; j ++) {
  172. let tagStr = ''
  173. for(let k = 0;k < d[j]['tag'].length; k ++) {
  174. tagStr += `<a href="${d[j]['tag'][k]['link']}" class="card__tag" target="_blank">${d[j]['tag'][k]['name']}</a>`
  175. }
  176. append += `<div class="col-6 col-md-4">
  177. <a href="${d[j]['url']}" target="_blank">
  178. <div class="card">
  179. <div style="overflow: hidden;">
  180. <div class="card__bgImg" style="background-image: url(${d[j]['imgURL']});">
  181. </div>
  182. </div>
  183. <div class="card-body">
  184. <h5 class="card-title card__title mt-0">${d[j]['title']}</h5>
  185. <p class="card-text mb-0">
  186. ${tagStr}
  187. </p>
  188. </div>
  189. </div>
  190. </a>
  191. </div>`
  192. }
  193. $('#pills-columns .work__row').append(append);
  194. }
  195. });
  196. }
  197. var page = 1;
  198. function loadMoretest() {
  199. setTimeout(function () {
  200. // let pageNum = 2;
  201. // if(page<=pageNum){
  202. // pageNum++;
  203. // page++;
  204. // }else{
  205. // }
  206. scroll_bottom_load_data(page);
  207. page++;
  208. return page
  209. }, 500);
  210. }
  211. let over = document.querySelector('.infoContent__navBlock').offsetTop;
  212. function detectBrowser(agent) {
  213. if (userAgent.match(/chrome|chromium|crios/i)) {
  214. browserName = "chrome";
  215. } else if (userAgent.match(/firefox|fxios/i)) {
  216. browserName = "firefox";
  217. } else if (userAgent.match(/safari/i)) {
  218. browserName = "safari";
  219. } else if (userAgent.match(/opr\//i)) {
  220. browserName = "opera";
  221. } else if (userAgent.match(/edg/i)) {
  222. browserName = "edge";
  223. } else {
  224. browserName = "No browser detection";
  225. }
  226. if (browserName === 'safari') {
  227. isSafari = true;
  228. }
  229. console.log(isSafari);
  230. }
  231. function detectDirection() {
  232. let height = (window.screen.width * 2) / 3;
  233. $('.sec-02 .slide-item').css('height', `${height}px`);
  234. let topHeight = (window.screen.width * 30) / 131;
  235. $('.sec-00 .slide-item').css('height', `${topHeight}px`);
  236. $('.sec-00 .container-fluid').css('height', `${topHeight}px`);
  237. }
  238. function renderinfoCard(designer) {
  239. $('.mb__hero__bgImg').attr('backgroundImage', `url(${designer['BannerImg']})`);
  240. $('.mb__infoCard__avatar').css('backgroundImage', `url(${designer['Designerimg']})`)
  241. $('.mb__infoCard__name').text(designer['DesignerName']);
  242. $('.mb__infoCard__seo').text(designer['Description']);
  243. $('.mb__infoCard__cmy').text(designer['CompanyName']);
  244. if (designer['Approve'] !== '') {
  245. $('.mb__infoCard__approve').html(designer['Approve']);
  246. }
  247. // Basics
  248. let str = '';
  249. for (let i = 0; i < designer['Basics'].length; i++) {
  250. str += `<aside class="d-flex">
  251. <div class="mb__infoCard__detail__l">
  252. <div>${designer['Basics'][i].title}</div>
  253. </div>
  254. <div class="mb__infoCard__detail__r">
  255. <a href="${designer['Basics'][i].link}">${designer['Basics'][i].data}</a>
  256. </div>
  257. </aside>`
  258. }
  259. $('.mb__infoCard__basics').html(str);
  260. // Branches
  261. let otherStr = '';
  262. for (let i = 0; i < designer['Branches'].length; i++) {
  263. otherStr += `<aside class="d-flex">
  264. <div class="mb__infoCard__detail__l">
  265. <div>${designer['Branches'][i].title}</div>
  266. </div>
  267. <div class="mb__infoCard__detail__r">
  268. <a href="${designer['Branches'][i].link}" >${designer['Branches'][i].data}</a>
  269. </div>
  270. </aside>`
  271. }
  272. $('.mb__infoCard__branches').html(otherStr);
  273. let currentURL = window.location.href;
  274. // scMedia
  275. let mediaStr = '';
  276. for (let i = 0; i < designer['scMedia'].length; i++) {
  277. if (i === 4) {
  278. mediaStr += `<span>
  279. <img src="${designer['scMedia'][i].img}" class="dislike" alt="">
  280. <img src="https://hhh.com.tw/assets/images/rv_web/like.svg" class="like" alt="">
  281. </span>`;
  282. }
  283. else if (i === 1) {
  284. mediaStr += `<a target="_blank" href="https://social-plugins.line.me/lineit/share?url=${currentURL}}">
  285. <img src="${designer['scMedia'][i].img}" alt="">
  286. </a>`;
  287. } else if (i === 2) {
  288. mediaStr += `<a target="_blank" href="https://www.addtoany.com/ext/wechat/share/#url=url=${currentURL}}">
  289. <img src="${designer['scMedia'][i].img}" alt="">
  290. </a>`;
  291. }
  292. else if (i === 3) {
  293. mediaStr += `<span class="send" data-bs-toggle="modal" data-bs-target="#emailModal">
  294. <img src="${designer['scMedia'][i].img}" alt="">
  295. </span>`;
  296. } else {
  297. mediaStr += `<a href="${designer['scMedia'][i].link}">
  298. <img src="${designer['scMedia'][i].img}" alt="">
  299. </a>`;
  300. }
  301. }
  302. $('.scMedia').html(mediaStr);
  303. // document.querySelector('.dislike').addEventListener('click', function() {
  304. // $('.dislike').css('display', 'none');
  305. // $('.like').css('display', 'block');
  306. // })
  307. // document.querySelector('.like').addEventListener('click', function() {
  308. // $('.dislike').css('display', 'block');
  309. // $('.like').css('display', 'none');
  310. // })
  311. // term condition
  312. let termStr = '';
  313. for (let i = 0; i < designer['Terms'].length; i++) {
  314. termStr += `<aside class="d-flex">
  315. <div class="mb__infoCard__detail__l">
  316. <div>${designer['Terms'][i].title}</div>
  317. </div>
  318. <div class="mb__infoCard__detail__r">
  319. <div>${designer['Terms'][i].data}</div>
  320. </div>
  321. </aside>`
  322. }
  323. $('.mb__infoCard__terms').html(termStr);
  324. }
  325. function renderTab(content) {
  326. let tabTitleStr = '';
  327. for (let i = 0; i < content.length; i++) {
  328. if (content[i]['Carddata'] == "" & content[i]['info'] == undefined) {
  329. tabTitleStr += ``
  330. } else {
  331. if (i == 0) {
  332. tabTitleStr += `<li class="nav-item p-0 active" role="presentation">
  333. <a class="nav-item-link nav-item-active bg-transparent active" id="pills-${content[i]['Tabtag']}-tab"
  334. data-bs-toggle="pill" data-bs-target="#pills-${content[i]['Tabtag']}" type="button" role="tab"
  335. aria-controls="pills-${content[i]['Tabtag']}" aria-selected="false" data-link="https://hhh.com.tw/videos/lists/">${content[i]['mb_title']}</a>
  336. </li>`
  337. } else if (content[i]['Display_mb']) {
  338. tabTitleStr += `<li class="nav-item p-0" role="presentation">
  339. <a class="nav-item-link nav-item-active bg-transparent" id="pills-${content[i]['Tabtag']}-tab"
  340. data-bs-toggle="pill" data-bs-target="#pills-${content[i]['Tabtag']}" type="button" role="tab"
  341. aria-controls="pills-${content[i]['Tabtag']}" aria-selected="false" data-link="https://hhh.com.tw/videos/lists/">${content[i]['mb_title']}</a>
  342. </li>`
  343. }
  344. }
  345. }
  346. $('#pills-tab').html(tabTitleStr);
  347. $('.pill-aside').html(tabTitleStr);
  348. }
  349. function renderTabContent(content, meta) {
  350. let tabStr = '';
  351. for (let i = 0; i < content.length; i++) {
  352. let cardData = ''
  353. if (content[i].info) {
  354. for (let j = 0; j < content[i].info.length; j++) {
  355. cardData += `<div class="company__block">
  356. <h4 class="company__title">${content[i].info[j].title}</h4>
  357. <div class="company__text">
  358. ${content[i].info[j].data}
  359. </div>
  360. </div>`
  361. }
  362. tabStr += `<div class="tab-pane fade " id="pills-${content[i]['Tabtag']}" role="tabpanel"
  363. aria-labelledby="pills-${content[i]['Tabtag']}-tab">
  364. <div class="row justfy-content-between">
  365. <div class="col-md-8">
  366. <article class="company__article">
  367. ${cardData}
  368. </article>
  369. </div>
  370. </div>
  371. </div>`
  372. } else {
  373. for (let j = 0; j < (content[i].Carddata.length < num_per_page ? content[i].Carddata.length : num_per_page); j++) {
  374. let tagStr = '';
  375. for (let k = 0; k < content[i].Carddata[j].tag.length; k++) {
  376. tagStr += `<a href="${content[i].Carddata[j].tag[k]['link']}" class="card__tag" target="_blank">${content[i].Carddata[j].tag[k]['name']}</a>`
  377. }
  378. // for(let j = 0;j < content[i].Carddata.length; j ++) {
  379. cardData += `<div class="col-6 col-md-4">
  380. <a href="${content[i].Carddata[j]['url']}" target="_blank">
  381. <div class="card">
  382. <div class="card__bgImg" style="background-image: url(${content[i].Carddata[j]['imgURL']});">
  383. </div>
  384. <div class="card-body">
  385. <h5 class="card-title card__title mt-0">${content[i].Carddata[j]['title']}</h5>
  386. <p class="card-text mb-0">
  387. ${tagStr}
  388. </p>
  389. </div>
  390. </div>
  391. </a>
  392. </div>`
  393. }
  394. if (content[i].Display_mb) {
  395. tabStr += `<div class="tab-pane fade " id="pills-${content[i]['Tabtag']}" role="tabpanel"
  396. aria-labelledby="pills-${content[i]['Tabtag']}-tab">
  397. <div class="row work__row">
  398. ${cardData}
  399. </div>
  400. </div>`
  401. let key = content[i]['Tabtag'];
  402. totalPages[key] = content[i].Carddata.length;
  403. }
  404. }
  405. }
  406. console.log(tabStr);
  407. //console.log(totalPages);
  408. $('#pills-tabContent').html(tabStr);
  409. $('#pills-tabContent').append('<div style="padding: 20px;"></div>');
  410. $("#pills-intro").append(` <div class="d-flex justify-content-center py-1 py-md-5">
  411. <div id="loading_img">
  412. <svg class="loading-move" xmlns="http://www.w3.org/2000/svg" width="40" height="41.965"
  413. viewBox="0 0 40 41.965">
  414. <defs>
  415. <style>
  416. .a {
  417. fill: #ee751b;
  418. }
  419. </style>
  420. </defs>
  421. <circle class="a" cx="4.89" cy="4.89" r="4.89" transform="translate(16.094)" />
  422. <ellipse class="a" cx="2.933" cy="2.933" rx="2.933" ry="2.933"
  423. transform="translate(18.05 36.099)" />
  424. <ellipse class="a" cx="4.401" cy="4.401" rx="4.401" ry="4.401" transform="translate(4.487 5.464)" />
  425. <circle class="a" cx="2.445" cy="2.445" r="2.445" transform="translate(30.626 31.609)" />
  426. <ellipse class="a" cx="3.911" cy="3.911" rx="3.911" ry="3.911" transform="translate(0 18.056)" />
  427. <circle class="a" cx="1.955" cy="1.955" r="1.955" transform="translate(36.091 20.01)" />
  428. <path class="a" d="M5.065,20.213a3.422,3.422,0,1,0,4.839,0A3.419,3.419,0,0,0,5.065,20.213Z"
  429. transform="translate(1.403 11.424)" />
  430. <ellipse class="a" cx="1.466" cy="1.466" rx="1.466" ry="1.466"
  431. transform="translate(31.603 8.434)" />
  432. </svg>
  433. </div>
  434. </div>`)
  435. $("#pills-video").append(` <div class="d-flex justify-content-center py-1 py-md-5">
  436. <div id="loading_img">
  437. <svg class="loading-move" xmlns="http://www.w3.org/2000/svg" width="40" height="41.965"
  438. viewBox="0 0 40 41.965">
  439. <defs>
  440. <style>
  441. .a {
  442. fill: #ee751b;
  443. }
  444. </style>
  445. </defs>
  446. <circle class="a" cx="4.89" cy="4.89" r="4.89" transform="translate(16.094)" />
  447. <ellipse class="a" cx="2.933" cy="2.933" rx="2.933" ry="2.933"
  448. transform="translate(18.05 36.099)" />
  449. <ellipse class="a" cx="4.401" cy="4.401" rx="4.401" ry="4.401" transform="translate(4.487 5.464)" />
  450. <circle class="a" cx="2.445" cy="2.445" r="2.445" transform="translate(30.626 31.609)" />
  451. <ellipse class="a" cx="3.911" cy="3.911" rx="3.911" ry="3.911" transform="translate(0 18.056)" />
  452. <circle class="a" cx="1.955" cy="1.955" r="1.955" transform="translate(36.091 20.01)" />
  453. <path class="a" d="M5.065,20.213a3.422,3.422,0,1,0,4.839,0A3.419,3.419,0,0,0,5.065,20.213Z"
  454. transform="translate(1.403 11.424)" />
  455. <ellipse class="a" cx="1.466" cy="1.466" rx="1.466" ry="1.466"
  456. transform="translate(31.603 8.434)" />
  457. </svg>
  458. </div>
  459. </div>`)
  460. $("#pills-columns").append(` <div class="d-flex justify-content-center py-1 py-md-5">
  461. <div id="loading_img">
  462. <svg class="loading-move" xmlns="http://www.w3.org/2000/svg" width="40" height="41.965"
  463. viewBox="0 0 40 41.965">
  464. <defs>
  465. <style>
  466. .a {
  467. fill: #ee751b;
  468. }
  469. </style>
  470. </defs>
  471. <circle class="a" cx="4.89" cy="4.89" r="4.89" transform="translate(16.094)" />
  472. <ellipse class="a" cx="2.933" cy="2.933" rx="2.933" ry="2.933"
  473. transform="translate(18.05 36.099)" />
  474. <ellipse class="a" cx="4.401" cy="4.401" rx="4.401" ry="4.401" transform="translate(4.487 5.464)" />
  475. <circle class="a" cx="2.445" cy="2.445" r="2.445" transform="translate(30.626 31.609)" />
  476. <ellipse class="a" cx="3.911" cy="3.911" rx="3.911" ry="3.911" transform="translate(0 18.056)" />
  477. <circle class="a" cx="1.955" cy="1.955" r="1.955" transform="translate(36.091 20.01)" />
  478. <path class="a" d="M5.065,20.213a3.422,3.422,0,1,0,4.839,0A3.419,3.419,0,0,0,5.065,20.213Z"
  479. transform="translate(1.403 11.424)" />
  480. <ellipse class="a" cx="1.466" cy="1.466" rx="1.466" ry="1.466"
  481. transform="translate(31.603 8.434)" />
  482. </svg>
  483. </div>
  484. </div>`)
  485. $('#pills-intro').addClass('active');
  486. $('#pills-intro').addClass('show');
  487. $('#pills-video .card__bgImg').append('<img src="https://hhh.com.tw/assets/images/rv_web/play.svg" alt="" width="50" height="50">')
  488. $('.infoContent .nav-item-link').click(checkTab);
  489. checkTab();
  490. $(`<div id="fb-container" style="width: 320px;" class="mx-auto">
  491. <div class="fb-page" data-href="${meta['FB_link']}" data-tabs="timeline" data-width="320" data-height="700" data-small-header="false" data-adapt-container-width="true" data-hide-cover="false" data-show-facepile="true">
  492. <blockquote cite="${meta['FB_link']}" class="fb-xfbml-parse-ignore">
  493. <a href="${meta['FB_link']}">${meta['CompanyName']}</a>
  494. </blockquote>
  495. </div>
  496. </div>
  497. <script async defer crossorigin="anonymous" src="https://connect.facebook.net/zh_TW/sdk.js#xfbml=1&version=v9.0" nonce="7TsDzQN7"></script>
  498. `).insertAfter($('.company__article > .company__block:nth-of-type(1)'));
  499. }
  500. window.addEventListener('scroll', fixedOnScroll);
  501. const navBlock = document.querySelector('.infoContent__navBlock');
  502. function fixedOnScroll() {
  503. if (window.innerHeight < window.innerWidth) {
  504. } else {
  505. detectDirection();
  506. }
  507. if (window.pageYOffset >= over) {
  508. navBlock.classList.add('tab_sticky');
  509. } else if (window.pageYOffset < over) {
  510. navBlock.classList.remove('tab_sticky');
  511. }
  512. }
  513. $('.navbar-toggler').click(function () {
  514. $(".sec-menu").css('display', 'block');
  515. $(".wholeBody").css('overflow-y', 'hidden');
  516. $('.sec-menu-block').addClass('slidein');
  517. $('.sec-menu-block').removeClass('slideout');
  518. });
  519. $('.navbar-back').click(function () {
  520. $(".sec-menu").css('display', 'none');
  521. $(".wholeBody").css('overflow-y', 'scroll');
  522. $('.sec-menu-block').removeClass('slidein');
  523. $('.sec-menu-block').addClass('slideout');
  524. });
  525. $('.subexpand').click(function () {
  526. $(this).parent().next().toggleClass('show');
  527. $(this).parent().toggleClass('show');
  528. });
  529. $('.navbar-search').click(function () {
  530. $(".sec-search").css('display', 'block');
  531. $(".wholeBody").css('overflow-y', 'hidden');
  532. })
  533. $('.navbar-backs').click(function () {
  534. $(".sec-search").css('display', 'none');
  535. $(".wholeBody").css('overflow-y', 'scroll');
  536. });
  537. $('.navbar-back-fav').click(function () {
  538. $(".sec-favor").css('display', 'none');
  539. })
  540. $('.btn-gotop').click(function () {
  541. $('html, body').animate({
  542. scrollTop: 0
  543. }, 500)
  544. });
  545. $(window).scroll(function () {
  546. if ($(this).scrollTop() > 500) {
  547. $('.fixed-btn').fadeIn(222);
  548. $('.freeCall').fadeIn(222);
  549. } else {
  550. $('.fixed-btn').stop().fadeOut(222);
  551. $('.freeCall').stop().fadeOut(222);
  552. }
  553. }).scroll();
  554. const searchBtn = document.querySelector('.searchBtn');
  555. const searchBar = document.querySelector('.searchBar');
  556. const searchHotLink = document.querySelectorAll('.sec-search-hots__link');
  557. searchBtn.addEventListener('click', search);
  558. searchBar.addEventListener('keyup', pressSearch);
  559. function search() {
  560. if (searchBar.value == '') {
  561. window.location.href = 'https://m.hhh.com.tw/search/lists/case/';
  562. } else {
  563. window.location.href = `https://m.hhh.com.tw/search/lists/case/${searchBar.value}-keyword/`;
  564. }
  565. }
  566. function pressSearch(e) {
  567. if (e.keyCode === 13) {
  568. e.preventDefault();
  569. search();
  570. }
  571. }
  572. searchHotLink.forEach((item, i) => {
  573. item.addEventListener('click', function () {
  574. window.location.href = `https://m.hhh.com.tw/search/lists/case/${this.textContent}-keyword/`;
  575. })
  576. })
  577. document.addEventListener('lazybeforeunveil', function (e) {
  578. var bg = e.target.getAttribute('data-bg');
  579. if (bg) {
  580. e.target.style.backgroundImage = 'url(' + bg + ')';
  581. }
  582. });
  583. $('.mb__infoCard__more').click(function () {
  584. $(this).hide();
  585. $('.other').css('display', 'block');
  586. over = document.querySelector('.infoContent__navBlock').offsetTop;
  587. })
  588. checkTab()
  589. $('.infoContent .nav-item-link').click(checkTab);
  590. function checkTab() {
  591. if ($('#pills-intro-tab').hasClass('active')) {
  592. $('.likeSee').attr('hidden', false)
  593. } else {
  594. $('.likeSee').attr('hidden', true)
  595. }
  596. }
  597. function renderModalTitle(title) {
  598. $('#emailModal #title').val(title);
  599. }
  600. function loadMore(designer) {
  601. let nowTab = document.querySelector('.infoContent .tab-pane.show');
  602. if (nowTab === document.querySelector('#pills-intro')) {
  603. let last = document.querySelector('#pills-intro .work__row>div:last-child');
  604. let pageNum = Math.ceil(totalPages.intro / 10) - 1;
  605. if ($(window).scrollTop() + $(window).height() >= ($(document).height() - 100)) {
  606. console.log('over');
  607. if (n >= pageNum) {
  608. n = pageNum;
  609. return;
  610. } else {
  611. n++;
  612. let append = '';
  613. let d = designer['Content'][0].Carddata.slice(10 * n, (10 * n) + 10);
  614. for (let j = 0; j < d.length; j++) {
  615. append += `<div class="col-6 col-md-4">
  616. <a href="" target="_blank">
  617. <div class="card">
  618. <div style="overflow: hidden;">
  619. <div class="card__bgImg" style="background-image: url(${d[j]['imgURL']});">
  620. </div>
  621. </div>
  622. <div class="card-body">
  623. <h5 class="card-title card__title mt-0">${d[j]['title']}</h5>
  624. <p class="card-text mb-0">
  625. <a href="" class="card__tag" target="_blank">混搭風</a>
  626. <a href="" class="card__tag" target="_blank">混搭風</a>
  627. <a href="" class="card__tag" target="_blank">混搭風</a>
  628. </p>
  629. </div>
  630. </div>
  631. </a>
  632. </div>`
  633. }
  634. $('#pills-intro .work__row').append(append);
  635. }
  636. }
  637. } else if (nowTab === document.querySelector('#pills-video')) {
  638. let pageNum = Math.ceil(totalPages.video / 10) - 1;
  639. console.log(totalPages.video);
  640. let last = document.querySelector('#pills-video .work__row>div:last-child');
  641. if ($(window).scrollTop() + $(window).height() >= ($(document).height() - 100)) {
  642. if (n_video >= pageNum) {
  643. n_video = pageNum;
  644. console.log('n-video:', n_video);
  645. console.log('pageNum', pageNum);
  646. return;
  647. } else {
  648. console.log('pass-video');
  649. n_video++;
  650. console.log('test');
  651. let append = '';
  652. let d = designer['Content'][1].Carddata.slice(10 * n_video, (10 * n_video) + 10);
  653. for (let j = 0; j < d.length; j++) {
  654. append += `<div class="col-6 col-md-4">
  655. <a href="" target="_blank">
  656. <div class="card">
  657. <div style="overflow: hidden;">
  658. <div class="card__bgImg" style="background-image: url(${d[j]['imgURL']});">
  659. <img src="https://hhh.com.tw/assets/images/rv_web/play.svg" alt="" width="50" height="50">
  660. </div>
  661. </div>
  662. <div class="card-body">
  663. <h5 class="card-title card__title mt-0">${d[j]['title']}</h5>
  664. <p class="card-text mb-0">
  665. <a href="" class="card__tag" target="_blank">混搭風</a>
  666. <a href="" class="card__tag" target="_blank">混搭風</a>
  667. <a href="" class="card__tag" target="_blank">混搭風</a>
  668. </p>
  669. </div>
  670. </div>
  671. </a>
  672. </div>`
  673. }
  674. $('#pills-video .work__row').append(append);
  675. }
  676. }
  677. } else if (nowTab === document.querySelector('#pills-columns')) {
  678. let last = document.querySelector('#pills-columns .work__row>div:last-child');
  679. let pageNum = Math.ceil(totalPages.columns / 10) - 1;
  680. if ($(window).scrollTop() + $(window).height() >= ($(document).height() - 100)) {
  681. if (n_columns >= pageNum) {
  682. n_columns = pageNum;
  683. return;
  684. } else {
  685. n_columns++;
  686. console.log('test');
  687. let append = '';
  688. let d = designer['Content'][2].Carddata.slice(10 * n_columns, (10 * n_columns) + 10);
  689. for (let j = 0; j < d.length; j++) {
  690. append += `<div class="col-6 col-md-4">
  691. <a href="" target="_blank">
  692. <div class="card">
  693. <div style="overflow: hidden;">
  694. <div class="card__bgImg" style="background-image: url(${d[j]['imgURL']});">
  695. </div>
  696. </div>
  697. <div class="card-body">
  698. <h5 class="card-title card__title mt-0">${d[j]['title']}</h5>
  699. <p class="card-text mb-0">
  700. <a href="" class="card__tag" target="_blank">混搭風</a>
  701. <a href="" class="card__tag" target="_blank">混搭風</a>
  702. <a href="" class="card__tag" target="_blank">混搭風</a>
  703. </p>
  704. </div>
  705. </div>
  706. </a>
  707. </div>`
  708. }
  709. $('#pills-columns .work__row').append(append);
  710. }
  711. }
  712. }
  713. }
  714. function putEmail() {
  715. const 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,}))$/;
  716. if ($('#email').val() !== null && emailPattern.test($('#email').val())) {
  717. $('#error').hide();
  718. $('#putEmail_hidden').css('display', 'block');
  719. $('#add_email').text($('#email').val());
  720. $('#email').val('');
  721. } else {
  722. $('#error').show();
  723. $('#error').text('email 格式有誤');
  724. }
  725. }
  726. // $(function(){
  727. // var len = 10;
  728. // $(".JQellipsis").each(function(i){
  729. // if($(this).text().length>len){
  730. // $(this).attr("title",$(this).text());
  731. // var text=$(this).text().substring(0,len-1)+"...";
  732. // $(this).text(text);
  733. // }
  734. // });
  735. // });