common-ui.js 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686
  1. /* *******************************************
  2. [1][ prefix ]
  3. uifn_
  4. [2][ index ]
  5. 1. Variables (전역변수)
  6. 2. Init (초기설정)
  7. 3. Utility (유틸리티)
  8. 4. Custom (라이브러리 커스텀)
  9. 5. Content (컨텐츠)
  10. [3][ update ]
  11. 2020.12.02 FOOT area - popup, family site, scrollTop
  12. 2020.12.10 FORM - check-All, input-File-Add, Select Custom
  13. ******************************************* */
  14. /* * * * * * * * * * * * * * * * * * * * * *
  15. (1) Variables (전역변수)
  16. * * * * * * * * * * * * * * * * * * * * * */
  17. /* * * * * * * * * * * * * * * * * * * * * * *
  18. 2. Init (초기설정)
  19. * * * * * * * * * * * * * * * * * * * * * */
  20. $(document).ready(function(){
  21. // history back
  22. $(".back").on("click", function () {
  23. history.back()
  24. });
  25. // main css 호출 제거
  26. var uifn_DISCR = $('#container').attr('class');
  27. var uifn_DISCRCLASS = "main";
  28. if (uifn_DISCR != null && uifn_DISCR.indexOf(uifn_DISCRCLASS) == -1) {
  29. jQuery("link[rel=stylesheet][href*='css/main.css']").remove();
  30. };
  31. // header minify
  32. $(function(){
  33. $(window).scroll(function(){
  34. var headerH = $('.common_header > .hd_top_banner').outerHeight() + $('.common_header > .area').outerHeight();
  35. var miniGnbH = $('.common_header > .gnb').outerHeight();
  36. if ($(window).scrollTop() >= headerH){
  37. //header minify
  38. $("header").addClass("minify");
  39. $("#container").css("padding-top",miniGnbH);
  40. }
  41. else {
  42. //header minify
  43. $("header").removeClass("minify");
  44. $("#container").css("padding-top","0px");
  45. }
  46. });
  47. });
  48. // items like on/off
  49. $(function(){
  50. $(".itemLike").click(function () {
  51. $(this).toggleClass("likeit");
  52. });
  53. });
  54. });
  55. /* * * * * * * * * * * * * * * * * * * * * * *
  56. 3. Utility (유틸리티)
  57. * * * * * * * * * * * * * * * * * * * * * */
  58. // FORM
  59. // input-File-Add
  60. $(document).ready(function() {
  61. if (window.File && window.FileList && window.FileReader) {
  62. $("#fileAdd").on("change", function(e) {
  63. var files = e.target.files,
  64. filesLength = files.length;
  65. console.log(filesLength);
  66. var cmtLa = $('.cmt .cmt_thumb .form_field .imgUpload label');
  67. var cmtIn = $('.cmt .cmt_thumb .form_field .imgUpload input');
  68. var myrvLa = $('.myReviewWrite .form_field .imgUpload label');
  69. var myrvIn = $('.myReviewWrite .form_field .imgUpload input');
  70. for (var i = 0; i < filesLength; i++) {
  71. var f = files[i]
  72. var fileReader = new FileReader();
  73. fileReader.onload = (function(e) {
  74. var file = e.target;
  75. console.log(file);
  76. $("<span class=\"pics\">" +
  77. "<img class=\"picsThumbs\" src=\"" + e.target.result + "\" title=\"" + file.name + "\"/>" +
  78. "<br/><span class=\"removes\">Removes image</span>" +
  79. "</span>").insertAfter("#fileAdd");
  80. $(".removes").click(function(){
  81. $(this).parent(".pics").closest(".imgUpload").children("input").val("");
  82. $(this).parent(".pics").remove();
  83. cmtLa.css('display', 'block');
  84. cmtIn.css('display', 'block');
  85. myrvLa.css('display', 'block');
  86. myrvIn.css('display', 'block');
  87. $('#fileAdd').removeAttr("disabled");
  88. });
  89. });
  90. fileReader.readAsDataURL(f);
  91. var maxFileLength = 10; /* 최대 파일 갯수를 입력해 주세요 */
  92. var imgFiles=$('.imgUpload .pics');
  93. var cmtLa = $('.cmt .cmt_thumb .form_field .imgUpload label');
  94. var cmtIn = $('.cmt .cmt_thumb .form_field .imgUpload input');
  95. var myrvLa = $('.myReviewWrite .form_field .imgUpload label');
  96. var myrvIn = $('.myReviewWrite .form_field .imgUpload input');
  97. if (imgFiles.length >= maxFileLength-1) {
  98. $('#fileAdd').attr("disabled",true);
  99. cmtLa.css('display', 'none');
  100. cmtIn.css('display', 'none');
  101. myrvLa.css('display', 'none');
  102. myrvIn.css('display', 'none');
  103. } else if(imgFiles.length < maxFileLength){
  104. $('#fileAdd').removeAttr("disabled");
  105. }
  106. }
  107. });
  108. } else {
  109. alert("브라우저가 File API를 지원하지 않습니다.")
  110. }
  111. });
  112. // input-File-Adds
  113. $(document).ready(function() {
  114. if (window.File && window.FileList && window.FileReader) {
  115. $("#fileAdds").on("change", function(e) {
  116. var files = e.target.files,
  117. filesLength = files.length;
  118. for (var i = 0; i < filesLength; i++) {
  119. var f = files[i]
  120. var fileReader = new FileReader();
  121. fileReader.onload = (function(e) {
  122. var file = e.target;
  123. $("<span class=\"pics\">" +
  124. "<img class=\"picsThumbs\" src=\"" + e.target.result + "\" title=\"" + file.name + "\"/>" +
  125. "<br/><span class=\"removes\">Removes image</span>" +
  126. "</span>").insertAfter("#fileAdds");
  127. $(".removes").click(function(){
  128. $(this).parent(".pics").remove();
  129. });
  130. });
  131. fileReader.readAsDataURL(f);
  132. }
  133. });
  134. } else {
  135. alert("브라우저가 File API를 지원하지 않습니다.")
  136. }
  137. });
  138. // check-All
  139. $( document ).ready(function() {
  140. var $chkAll = $('.check-all');
  141. $chkAll.change(function () {
  142. var checked = $(this).prop('checked');
  143. $('input[name="dd"]').prop('checked', checked);
  144. });
  145. var ddChk = $('input[name="dd"]');
  146. ddChk.change(function () {
  147. var ddChkLength = ddChk.length;
  148. var checkedLength = $('input[name="dd"]:checked').length;
  149. var selectAll = (ddChkLength == checkedLength);
  150. $chkAll.prop('checked', selectAll);
  151. });
  152. });
  153. //Select Custom
  154. $( document ).ready(function() {
  155. $('select').each(function(){
  156. var $this = $(this), numberOfOptions = $(this).children('option').length;
  157. $this.addClass('select_hidden');
  158. $this.wrap('<div class="select"></div>');
  159. $this.after('<div class="select_dress"></div>');
  160. var $dressSelect = $this.next('div.select_dress');
  161. $dressSelect.text($this.children('option').eq(0).text());
  162. var $selList = $('<ul />', {
  163. 'class': 'select_options'
  164. }).insertAfter($dressSelect);
  165. for (var i = 0; i < numberOfOptions; i++) {
  166. $('<li />', {
  167. text: $this.children('option').eq(i).text(),
  168. rel: $this.children('option').eq(i).val(),
  169. class: $this.children('option').eq(i).attr('disabled')
  170. }).appendTo($selList);
  171. }
  172. var $selListItems = $selList.children('li');
  173. $dressSelect.click(function(e) {
  174. e.stopPropagation();
  175. $('div.select_dress.active').not(this).each(function(){
  176. $(this).removeClass('active').next('ul.select_options').hide();
  177. });
  178. $(this).toggleClass('active').next('ul.select_options').toggle();
  179. });
  180. $selListItems.click(function(e) {
  181. e.stopPropagation();
  182. if($(this).hasClass('disabled')){
  183. $this.val($(this).attr('rel',false));
  184. }
  185. else{
  186. $dressSelect.text($(this).text()).removeClass('active');
  187. $this.val($(this).attr('rel'));
  188. $selList.hide();
  189. }
  190. });
  191. $(document).click(function() {
  192. $dressSelect.removeClass('active');
  193. $selList.hide();
  194. });
  195. });
  196. });
  197. // Select-Combo-Custom
  198. function sCombo(selector){
  199. this.$selectBox = null,
  200. this.$select = null,
  201. this.$list = null,
  202. this.$listLi = null;
  203. sCombo.prototype.init = function(selector){
  204. this.$selectBox = $(selector);
  205. this.$select = this.$selectBox.find('.combo .select');
  206. this.$list = this.$selectBox.find('.combo .list');
  207. this.$listLi = this.$list.children('li');
  208. }
  209. sCombo.prototype.initEvent = function(e){
  210. var that = this;
  211. this.$select.on('click', function(e){
  212. that.listOn();
  213. });
  214. this.$listLi.on('click', function(e){
  215. that.listSelect($(this));
  216. });
  217. $(document).on('click', function(e){
  218. that.listOff($(e.target));
  219. });
  220. }
  221. sCombo.prototype.listOn = function(){
  222. if(this.$selectBox.hasClass('on')){
  223. this.$selectBox.removeClass('on');
  224. this.$list.css('display', 'none');
  225. } else {
  226. this.$selectBox.addClass('on');
  227. this.$list.css('display', 'block');
  228. }
  229. }
  230. sCombo.prototype.listSelect = function($target){
  231. $target.addClass('selected').siblings('li').removeClass('selected');
  232. this.$selectBox.removeClass('on');
  233. this.$select.html($target.html());
  234. this.$list.css('display', 'none');
  235. console.log($target.html())
  236. }
  237. sCombo.prototype.listOff = function($target){
  238. if(!$target.is(this.$select) && this.$selectBox.hasClass('on')){
  239. this.$selectBox.removeClass('on');
  240. this.$list.css('display', 'none');
  241. };
  242. }
  243. this.init(selector);
  244. this.initEvent();
  245. };
  246. // selectBrand on/off
  247. $( document ).ready( function() {
  248. $("#selectBrand .brandbox input").on("click", function() {
  249. $("#selectBrand .brandbox input").removeClass("on");
  250. $(this).addClass("on");
  251. });
  252. });
  253. // dropDownMenu
  254. $(document).on('click','.tgl_dropdown',function(e){
  255. $(this).next('.dropdown_menu').slideToggle(300);
  256. $(this).toggleClass('on');
  257. return false;
  258. });
  259. /* alert */
  260. $(function(){
  261. $('.alertCls').click(function(){
  262. setTimeout(function(){
  263. $('.alert').css('animation', 'none');
  264. $('.alert').css('display', 'none');
  265. }, 300);
  266. // uifn_currCallback();
  267. });
  268. });
  269. /* * * * * * * * * * * * * * * * * * * * * * *
  270. 4. Custom (라이브러리 커스텀)
  271. * * * * * * * * * * * * * * * * * * * * * */
  272. $( document ).ready(function() {
  273. //datepicker
  274. $.datepicker.regional['kr'] = {
  275. dateFormat: 'yy-mm-dd' // 날짜 포맷 설정
  276. };
  277. $.datepicker.setDefaults($.datepicker.regional['kr']);
  278. });
  279. /* * * * * * * * * * * * * * * * * * * * * * *
  280. 5. Content (컨텐츠)
  281. * * * * * * * * * * * * * * * * * * * * * */
  282. $(document).ready(function() {$(".modal .text_wrap style").remove();$(".modal .text_wrap").removeAttr("style");});// rmv = rmv.replace(/<style>(.*?)<(\/?)style>/gi,"");
  283. $(document).ready( function() {
  284. $(function(){
  285. if($(".content").hasClass("dp_hotdeal") || $(".content").hasClass("dp_Bulletship")){
  286. $('.container').closest('div').addClass('omitt');
  287. }
  288. });
  289. //LNB_상품리스트 카테고리
  290. $(document).on('click','.lnb .lnb_category ul li a',function(e){
  291. $(this).toggleClass('on');
  292. $(this).parent('li').siblings('li').children('a').removeClass('on');
  293. $(this).parent('li').siblings('li').removeClass('on');
  294. $(this).parent('li').siblings('li').find('a').removeClass('on');
  295. $(this).parent('li').toggleClass('on');
  296. $(this).parent('li').siblings('li').find('.sub_cate').hide();
  297. $(this).parent('li').children(".sub_cate").toggle();
  298. });
  299. /* 고객센터_accordion */
  300. /* 210428_수정 : 아코디언 */
  301. $(document).on('click','.cs .foldGroup .fold_head',function(){
  302. $(this).toggleClass('on');
  303. $(this).siblings('.fold_cont').slideToggle(100);
  304. $(this).parents('li').siblings('li').find('.fold_head').removeClass('on');
  305. $(this).parents('li').siblings('li').find('.fold_cont').slideUp(100);
  306. });
  307. /* //210428_수정 : 아코디언 */
  308. /* 주문결제_accordion */
  309. /* 210428_수정 : 아코디언 */
  310. $(document).on('click','.od .foldGroup .fold_head .fold_tit',function(e){
  311. $(this).parents('.fold_head').toggleClass('on');
  312. $(this).parents('.foldGroup li').find('.fold_cont').slideToggle(100);
  313. $(this).parents('li').siblings('li').find('.fold_head').removeClass('on');
  314. $(this).parents('li').siblings('li').find('.fold_cont').slideUp(100);
  315. return false;
  316. }).on('click','.od .foldGroup .fold_paymethod .fold_head .fold_tit',function(e){
  317. $("#rdi-paymethod-quick").trigger("click");
  318. return false;
  319. });
  320. /* //210428_수정 : 아코디언 */
  321. /* 아이디/비밀번호 찾기_accordion:open */
  322. $(document).on('click','.mb .foldGroup.checkcase .fold_head',function(e){
  323. $(this).parents('.foldGroup li').find('.fold_cont').slideDown(100);
  324. $(this).addClass('on');
  325. $('.foldGroup.checkcase .fold_head').not(this).removeClass('on').next('.fold_cont').slideUp(100);
  326. return false;
  327. });
  328. /* 아이디/비밀번호 찾기_accordion:close */
  329. $(document).on('click','.mb .foldGroup.checkcase .fold_head.on',function(e){
  330. $(this).removeClass('on');
  331. $(this).next('.fold_cont').slideUp(100);
  332. return false;
  333. });
  334. /* 아이디/비밀번호 찾기_taps */
  335. $(document).on('click','.registration_nav ul li',function(e){
  336. $('.foldGroup.checkcase .fold_head').removeClass('on').next('.fold_cont').hide();
  337. $(this).addClass('active').siblings().removeClass('active');
  338. $('.registration_tap .form_group').hide();
  339. $('.registration_tap .form_group').eq($(this).index()).show();
  340. return false;
  341. });
  342. /* 전시 팝업 샘플팝업1 */
  343. $(document).on('click','#coupon_pop',function(e){
  344. $("#coupon_modal_01").modal("show");
  345. return false;
  346. });
  347. /* 전시 팝업 샘플팝업2 */
  348. $(document).on('click','#coupon_pop2',function(e){
  349. $("#coupon_modal_02").modal("show");
  350. return false;
  351. });
  352. /* 같은 데이터 노출시 동일 영역끼리 병합 */
  353. $(".merge_row").each(function() {
  354. var txtcont = $(this).text();
  355. var rows = $(this).parents("table").find(".merge_row:contains('" + txtcont + "')");
  356. if (rows.length > 1) {
  357. rows.eq(0).attr("rowspan", rows.length);
  358. rows.not(":eq(0)").remove();
  359. }
  360. rows.eq(0).parent('tr').attr('class', 'bundle_row');
  361. });
  362. /* 드래그 스크롤 */
  363. var x,left,down;
  364. $(".bullet_sticky_nav ul").mousedown(function(e){
  365. e.preventDefault();
  366. down = true;
  367. x = e.pageX;
  368. left = $(this).scrollLeft();
  369. });
  370. $("body").mousemove(function(e){
  371. if(down){
  372. var newX = e.pageX;
  373. $(".bullet_sticky_nav ul").scrollLeft(left - newX + x);
  374. }
  375. });
  376. $("body").mouseup(function(e){down = false;});
  377. /* //드래그 스크롤 */
  378. /* 상품리스트 sticky_nav_header */
  379. $(function(){
  380. /* 210512_수정 : 스크롤시 해당 상품영역 sticky_nav 구분자 active 클래스추가 수정 */
  381. /* 스크롤시 효과 */
  382. $(window).scroll(function(){
  383. var windScroll = $(window).scrollTop();
  384. var miniGnbH = $('.common_header .gnb').outerHeight();
  385. var stickyTopNavH = $('.common_header .gnb').outerHeight();
  386. var navOffsetTop = $('.sticky_nav_list').size() ? $('.sticky_nav_list').offset().top : 0;
  387. var navOffsetBottom = navOffsetTop + $('.list_content').outerHeight();
  388. var arr = [];
  389. if (windScroll > navOffsetTop){
  390. $('.sticky_nav_list').css('padding-top',stickyTopNavH);
  391. $(".sticky_nav").addClass("sticky");
  392. } else {
  393. $('.sticky_nav_list').css('padding-top','0px');
  394. $(".sticky_nav").removeClass("sticky");
  395. }
  396. if(windScroll > navOffsetBottom) {
  397. $('.sticky_nav_list').css('padding-top','0px');
  398. $(".sticky_nav").removeClass("sticky");
  399. }
  400. $('.sticky_nav li').find('a').removeClass('active');
  401. var $menu = $('.sticky_nav li a'),
  402. $contents = $(".list_content > div.dp_item_list"); //210517_ 수정 : 전시 브랜드별 상품리스트 특정 class .dp_item_list 추가.
  403. $.each($contents, function(idx, item){
  404. var $target = $(".list_content > div.dp_item_list").eq(idx), //210517_ 수정 : 전시 브랜드별 상품리스트 특정 class .dp_item_list 추가.
  405. i = $target.index(),
  406. targetHeader = $(".sticky_nav").outerHeight() + 30,
  407. targetTop = $target.offset().top - targetHeader;
  408. if (targetTop < windScroll) {
  409. $menu.removeClass('active');
  410. $menu.eq(idx).addClass('active');
  411. }
  412. })
  413. });
  414. /* 상품리스트 sticky_nav_link */
  415. $(".sticky_nav li a").on("click", function(){
  416. var hookHeader = $(".sticky_nav").outerHeight();
  417. var hookHref = $(this).attr("href");
  418. var hookPot = $(hookHref);
  419. var hookPos = hookPot.offset().top - hookHeader;
  420. $("html, body").animate({scrollTop: hookPos}, 300);
  421. });
  422. });
  423. //210428_카테고리 재클릭 시 사라짐
  424. //상품 리스트_필터
  425. var listFilNum = 0;
  426. $('.filter_list ul li').click(function(){
  427. //$(".filter_list ul li").removeClass('on');
  428. $(".dp_list .sort, .sch_result .sort").removeClass('on');
  429. if($(this).hasClass("on")){
  430. $(this).removeClass('on');
  431. $("."+$(this).data('id')).removeClass('on');
  432. listFilNum = 0;
  433. $('.container .dp_list .fillter, .container .sch_result .fillter').hide();
  434. } else {
  435. $(".filter_list ul li").removeClass('on');
  436. $(this).addClass('on');
  437. $("."+$(this).data('id')).addClass('on');
  438. listFilNum = 1;
  439. $('.container .dp_list .fillter, .container .sch_result .fillter').show();
  440. }
  441. $('.sort ul li').removeClass('on');
  442. $('.sort ul li div').hide();
  443. // $('.container .dp_list .fillter, .container .sch_result .fillter').show();
  444. });
  445. // 카테고리
  446. $('.tap_close').click(function(){
  447. $(this).parent().removeClass('on');
  448. $('.filter_content .sort ul li div').hide();
  449. $('.filter_content .sort ul li, .container .filter_list ul li').removeClass('on');
  450. $('.container .dp_list .sort, .container .sch_result .sort').removeClass('on');
  451. $('.fillter').hide();
  452. });
  453. });
  454. /* * * * * * * * * * * * * * * * * * * * * * *
  455. 6. Content (상품상세)
  456. * * * * * * * * * * * * * * * * * * * * * */
  457. $(document).ready( function() {
  458. // 210611_ 개발 사용 불가, 스크립트 제거
  459. //팝업 - 상품썸네일 크게보기
  460. $(document).on('click','.pd_detail .area_pic .thumb_list_wrap ul li a',function(e){
  461. $('body').addClass('lock');
  462. //var thumbIndex = $(this).index() + 1;
  463. var thumbIndex = $(this).parent().attr('id').replace("navLocate", "");
  464. var thumbImglength = $('.pd_detail .area_pic .thumb_list_wrap ul li').length;
  465. var popThumbImgHtml = "";
  466. $("#pdItemThumbPop").show();
  467. var scrollThumbPop = $('#popThumb'+thumbIndex).offset().top;
  468. var currentTop = $(window).scrollTop();
  469. $('#pdItemThumbPop').animate({scrollTop : scrollThumbPop - currentTop}, 1000);
  470. return false;
  471. }).on('click','#btn_close_itemThumbPop, .pd_itemthumb_pop .scaleview img',function(e){
  472. $("#pdItemThumbPop").scrollTop(0);
  473. $("#pdItemThumbPop").hide();
  474. $('body').removeClass('lock');
  475. return false;
  476. });
  477. // 상품 대표설명 > 좌측 상품썸네일 navi, 우측 상품정보 고정
  478. $(window).scroll(function(){
  479. var scrollTop= $(window).scrollTop();
  480. var headerH = $('.common_header > .hd_top_banner').outerHeight() + $('.common_header > .area').outerHeight();
  481. var miniGnbH = $('.common_header > .gnb').outerHeight();
  482. var firstFixed = headerH + miniGnbH;
  483. var thumbListWrap_h = $('.pd_detail .thumb_list_wrap').outerHeight();
  484. var descWrap_h = $('.pd_detail .desc_wrap').outerHeight();
  485. var secondFixed_left = firstFixed + $('.pd_detail').outerHeight() - $('.pd_detail .thumb_nav_wrap').outerHeight();
  486. var secondFixed_right = firstFixed + $('.pd_detail .desc_wrap').outerHeight() - $(window).outerHeight();
  487. var secondFixed_right2 = firstFixed + $('.pd_detail').outerHeight() - $(window).outerHeight();
  488. var pdDetail_t = firstFixed + $('.pd_detail').outerHeight() + 100;
  489. var pdDescWrap_t = pdDetail_t + $('.pd_desc_wrap').outerHeight();
  490. var optionFixed_right = pdDetail_t + $('.pd_desc_wrap').outerHeight() - $('.area_option .opt_wrap').outerHeight();
  491. /* 좌측 상품썸네일 navi 고정 */
  492. if (scrollTop > firstFixed){
  493. $('.pd_detail .area_pic .thumb_nav_wrap').removeClass('fixbottom').addClass('fixtop');
  494. }
  495. else if (scrollTop < firstFixed){
  496. $('.pd_detail .area_pic .thumb_nav_wrap').removeClass('fixtop');
  497. }
  498. if (scrollTop > secondFixed_left){
  499. $('.pd_detail .area_pic .thumb_nav_wrap').removeClass('fixtop').addClass('fixbottom');
  500. }
  501. /* 우측 상품정보 고정 */
  502. if (thumbListWrap_h > descWrap_h && scrollTop > secondFixed_right) {
  503. $('.pd_detail .area_desc .desc_wrap').removeClass('absbottom').addClass('fixbottom');
  504. }
  505. else if (thumbListWrap_h > descWrap_h && scrollTop < secondFixed_right) {
  506. $('.pd_detail .area_desc .desc_wrap').removeClass('fixbottom');
  507. }
  508. if (thumbListWrap_h > descWrap_h && scrollTop > secondFixed_right2) {
  509. $('.pd_detail .area_desc .desc_wrap').removeClass('fixbottom').addClass('absbottom');
  510. }
  511. /* 딜 - 상세정보 탭 고정 */
  512. if (scrollTop > pdDetail_t && scrollTop < pdDescWrap_t){
  513. $('.tab_detail_nav').addClass('fix');
  514. } else {
  515. $('.tab_detail_nav').removeClass('fix');
  516. }
  517. /* 딜 - 우측옵션 고정 */
  518. if (scrollTop > pdDetail_t){
  519. $('.area_option .opt_wrap').removeClass('absbottom').addClass('fixtop');
  520. } else if (scrollTop < pdDetail_t) {
  521. $('.area_option .opt_wrap').removeClass('fixtop');
  522. }
  523. if (scrollTop > optionFixed_right){
  524. $('.area_option .opt_wrap').removeClass('fixtop').addClass('absbottom');
  525. }
  526. });
  527. //슬라이드 - 상품 대표설명 > 좌측 상품썸네일 navi
  528. var thumbNavSwiper = new Swiper('.pd_detail .area_pic .thumb_nav_wrap .swiper-container', {
  529. direction: 'vertical',
  530. allowTouchMove: false,
  531. slidesPerView: 6,
  532. slidesPerGroup : 1,
  533. spaceBetween: 10,
  534. navigation: {
  535. nextEl: '.area_pic .thumb_nav_wrap .swiper-button-next',
  536. prevEl: '.area_pic .thumb_nav_wrap .swiper-button-prev',
  537. },
  538. });
  539. //상품 대표설명 > 상품썸네일 1개일때
  540. var thumblist = $('.pd_detail .area_pic .thumb_list_wrap li');
  541. var thumblistLength = thumblist.length;
  542. if (thumblistLength == 1) {
  543. thumblist.parents('.area_pic').addClass('onlyitem');
  544. } else {
  545. thumblist.parents('.area_pic').removeClass('onlyitem');
  546. }
  547. //상품 대표설명 > 좌측 상품썸네일 6개 이하일때
  548. var thumbnavSlide = $('.pd_detail .area_pic .thumb_nav_wrap .swiper-container .swiper-slide');
  549. var thumbnavLength = thumbnavSlide.length;
  550. if (thumbnavLength < 7) {
  551. thumbnavSlide.parents('.thumbnav').addClass('disabled');
  552. } else {
  553. thumbnavSlide.parents('.thumbnav').removeClass('disabled');
  554. }
  555. //상품 대표설명 > 좌측 상품썸네일 navi 선택시 해당 대표 썸네일 위치로 이동
  556. $(document).on('click','.pd_detail .area_pic .thumbnav .swiper-slide a',function(e){
  557. e.preventDefault();
  558. var miniGnbH = $('.common_header > .gnb').outerHeight();
  559. var targetThumb = $($(this).attr('href'));
  560. var topThumb = targetThumb.offset().top - miniGnbH;
  561. $(this).parents('.thumbnav').find('.swiper-slide').removeClass('on');
  562. $(this).parent('.swiper-slide').addClass('on');
  563. targetThumb.siblings('li').removeClass('on');
  564. targetThumb.addClass('on');
  565. $('html,body').animate({scrollTop : topThumb}, 100);
  566. return false;
  567. });
  568. /* 상품상세 > 상품문의 _accordion */
  569. $(document).on('click','.pd_qnalist .foldGroup .fold_head',function(e){
  570. if($(this).parent().hasClass('secret_qna')){
  571. //210420_수정 : dialog alert 변경.
  572. mcxDialog.alert("비밀글은 열람하실 수 없습니다.", {
  573. sureBtnText: "확인",
  574. });
  575. }else {
  576. $('.fold_head').removeClass('on');
  577. $('.fold_cont').slideUp(100);
  578. if(!$(this).parents('.foldGroup li').find('.fold_cont').is(":visible")){
  579. $(this).parents('.foldGroup li').find('.fold_cont').slideDown(100);
  580. $(this).toggleClass('on');
  581. }
  582. }
  583. });
  584. });