2606_UIUX_27 수정 내역
https://contents.k-village.co.kr/front/mobile/css/layout.css
@@ -365,11 +365,12 @@ color: rgba(0, 0, 0, 1);} .popup-wrap .popup .popup__title--fit {padding-left: 0;} .popup-wrap .cont-wrap--fit {padding-top: 0;} .popup-wrap.full .cont-wrap--fit {padding-top: 0;} -.popup-wrap .popup .popup__content .popup__message {font-size:16px;line-height:25px;font-weight:400;} +.popup-wrap .popup .popup__content .popup__message {font-size:16px;line-height:25px;} .popup-wrap .popup .popup__content .popup__message--primary {font-size:18px;line-height:26px;} +.popup-wrap .popup .popup__content .popup__message--info {font-size:14px;line-height:normal;} .popup-wrap .popup .popup__content .popup__message ~ .popup__message {margin-top: 20px;} .popup-wrap .popup .popup__content .popup__message ~ .popup__message--desc {margin-top: 5px;} -.popup-wrap .popup .popup__content .popup__message .lined-text {position:relative;display:inline-block;font-size:inherit} +.popup-wrap .popup .popup__content .popup__message .lined-text {position:relative;display:inline-block;font-size:inherit;font-weight:inherit;} .popup-wrap .popup .popup__content .popup__message .lined-text::before {content:"";position: absolute;bottom:0;left:0;right:0;height: 1px;background-color: #000;} .quantity-control { font-size: 0; } @@ -784,7 +785,7 @@ touch-action: pan-y;} background-size:20px;} .quick-wrap.hide .quick-close{ transform: rotate(180deg);} -.top-btn{position: fixed; right: 21px; bottom: 90px; cursor: pointer; z-index: 16;text-align: right; display:flex; flex-direction:column-reverse; align-items:flex-end; transition:transform .3s;} +.top-btn{position: fixed; right: 21px; bottom: calc(90px + env(safe-area-inset-bottom, 0px)); cursor: pointer; z-index: 16;text-align: right; display:flex; flex-direction:column-reverse; align-items:flex-end; transition:transform .3s;} .top-btn.down{transform:translateY(60px)} .top-btn a{display:inline-block;width: 36px; height: 36px;margin:15px 0 0 0;} .top-btn [data-menuanchor="top"] {display:none; order:-1;} @@ -2023,7 +2024,6 @@ p.essen {font-size: 12px; margin: 8px 0} height: 1px; background: #000; } -.popup-wrap.change-address .popup header {border-bottom: 1px solid #ccc;} .popup-wrap.change-address .div-header h1 { font-size: 18px; font-weight: 500; @@ -2113,6 +2113,10 @@ p.essen {font-size: 12px; margin: 8px 0} .popup-wrap.change-address .btcon2 .box-type-select { color: #888; -webkit-text-fill-color: #888; + height: 36px; + padding-inline: 18px; + border: 1px solid #ddd; + line-height: 36px; font-weight: 500; } .popup-wrap.pop-recash header {border-bottom: 1px solid #ccc;} @@ -2225,8 +2225,6 @@ p.essen {font-size: 12px; margin: 8px 0} } .popup-wrap.mypage-dis header {border-bottom: 1px solid #ccc;} -.popup-wrap.send-mail header {border-bottom: 1px solid #ccc;} -.popup-wrap.pw-change .popup__message--primary {margin-block: 10px 30px;} /* UIUX4차 68 기획전, 이벤트 타임세일 */ .event-bnr .bnr-txt.white strong
OD-002_order_detail.html
@@ -7017,7 +7017,19 @@ groobee("serviceKey", "b5f0d6a3640e43a5ba78da779afdb0f5"); { // const regExp = /[\{\}\[\]\/?.,;:|\)*~`!^\-+<>@\#$%&\\\=\(\'\"]/gi; // el.value = el.value.replace(regExp, "") - el.value = el.value.replace(/[^(ㄱ-힣a-zA-Z)]/gi, '').replaceAll('\(','').replaceAll('\)',''); + var inputValue = el.value; + el.value = inputValue.replace(/[^ㄱ-힣a-zA-Z]/g, ''); + if(inputValue !== el.value) + { + if(typeof alertOpen === 'function') + { + alertOpen("commonAlert", '한글 또는 영문만 입력 가능합니다.', false, "alertOk"); + } + else + { + alert('한글 또는 영문만 입력 가능합니다.'); + } + } el.value = el.value.substr(0, maxlength); } else @@ -8495,10 +8507,8 @@ groobee("serviceKey", "b5f0d6a3640e43a5ba78da779afdb0f5"); <div class="popup-wrap full change-address"> <div class="popup"> <div class="layer-container"> - <header class="flex"> - <div class="div-header mt-0"> - <h1>배송지 변경</h1> - </div> + <header class="popup__header flex"> + <h1 class="popup__title">배송지 변경</h1> <div class="flex end margin"> <button class="close"> <div class="box"> @@ -8517,6 +8527,8 @@ groobee("serviceKey", "b5f0d6a3640e43a5ba78da779afdb0f5"); <div class="b-tab-cont btcon1" style="display: block;"> <div class="div-middle"> + <!-- [D] 등록된 배송지가 없을 때 다음 요소가 렌더링 --> + <p class="no-data">등록된 배송지가 없습니다.</p> </div> <div class="my-addr-list"> <div class="my-addr on"> @@ -8653,8 +8665,8 @@ groobee("serviceKey", "b5f0d6a3640e43a5ba78da779afdb0f5"); </div> </div> <div class="input-holder flex mt-15 addr-save"> - <input id="cbox-01" class="cbox-type" type="checkbox" name="cbox-1" value="" checked=""> - <label for="cbox-01" class="_img">배송지 목록에 추가</label> + <input id="cbox-06" class="cbox-type" type="checkbox" name="cbox-addDlvp" value="" checked=""> + <label for="cbox-06" class="_img">배송지 목록에 추가</label> <input id="cbox-02" class="cbox-type" type="checkbox" name="cbox-baseDlvp" value=""> <label for="cbox-02" class="_img">기본배송지로 저장</label> </div> @@ -9108,8 +9108,10 @@ groobee("serviceKey", "149537f7f34642698831c8fc30f4501f"); </div> <div class="div-middle"> <h4 class="label">받는 분<span class="essen">*</span></h4> - <div class="input-holder"> - <input class="txt-type-normal" placeholder="이름" id="rcpntNew" oninput="fn_HandleOnInput(this, 5,'text', event)" oncompositionend="fn_HandleOnInput(this, 5,'text')"> + <div class="flex"> + <div class="input-holder"> + <input class="txt-type-normal" placeholder="이름" id="rcpntNew" oninput="fn_HandleOnInput(this, 5,'text', event)" oncompositionend="fn_HandleOnInput(this, 5,'text')"> + </div> </div> </div> <div class="div-middle phone"> @@ -9181,21 +9183,20 @@ groobee("serviceKey", "149537f7f34642698831c8fc30f4501f"); <label for="cbox-02" class="_img">기본배송지로 저장</label> </div> <div class="div-middle"> - <div class="input-holder"> - <select class="box-type-select sb-n" id="sltDlvyRequestNew" onchange="fn_setDlvyRequest2(this.value);"> - <option value="" class="placeholder">배송 요청사항 (선택)</option> - <option value="빠른 배송 부탁드립니다.">빠른 배송 부탁드립니다.</option> - <option value="배송 전, 연락주세요.">배송 전, 연락주세요.</option> - <option value="부재 시, 연락처로 연락주세요.">부재 시, 연락처로 연락주세요.</option> - <option value="부재 시, 경비실에 맡겨주세요.">부재 시, 경비실에 맡겨주세요.</option> - <option value="경비실이 없습니다. 배송전, 연락주세요.">경비실이 없습니다. 배송전, 연락주세요.</option> - <option value="self">직접 입력</option> - </select> - <div class="input-holder mt-15"> - <input class="txt-type-normal" placeholder="최대 20자 입력" id="iptDlvyRequestNew" disabled="" oninput="fn_HandleOnInput(this, 20)"> - </div> - <input type="hidden" id="hidTotalDlvpNoNew" value=""> + <h4 class="label">배송 요청사항</h4> + <select class="box-type-select sb-n" id="sltDlvyRequestNew" onchange="fn_setDlvyRequest2(this.value);"> + <option value="" class="placeholder">배송 요청사항 (선택)</option> + <option value="빠른 배송 부탁드립니다.">빠른 배송 부탁드립니다.</option> + <option value="배송 전, 연락주세요.">배송 전, 연락주세요.</option> + <option value="부재 시, 연락처로 연락주세요.">부재 시, 연락처로 연락주세요.</option> + <option value="부재 시, 경비실에 맡겨주세요.">부재 시, 경비실에 맡겨주세요.</option> + <option value="경비실이 없습니다. 배송전, 연락주세요.">경비실이 없습니다. 배송전, 연락주세요.</option> + <option value="self">직접 입력</option> + </select> + <div class="input-holder mt-5"> + <input class="txt-type-normal" placeholder="최대 20자 입력" id="iptDlvyRequestNew" disabled="" oninput="fn_HandleOnInput(this, 20)"> </div> + <input type="hidden" id="hidTotalDlvpNoNew" value=""> </div> </div> </div>
https://contents.k-village.co.kr/front/mobile/js/commonFx.js
@@ -6,6 +6,8 @@ var CALLBACK_FUNC; let scrollPosition = 0; var isSearch = false; +var isBodyScrollLocked = false; +var beforeBodyStyle = ""; var createMenu = function(){ @@ -527,13 +529,33 @@ function resizeFx(){ } function overflowFx($isHidden){ if($isHidden){ - $("body").css({"height":"100%","overflow":"hidden"}); + if(isBodyScrollLocked) return; + + var $body = $("body"); + scrollPosition = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; + beforeBodyStyle = $body.attr("style") || ""; + $body.css({ + "height":"100%", + "overflow":"hidden", + "position":"fixed", + "top":"-" + scrollPosition + "px", + "left":"0", + "right":"0", + "width":"100%" + }); + isBodyScrollLocked = true; } else { - $("body").removeAttr("style"); + if(beforeBodyStyle) { + $("body").attr("style", beforeBodyStyle); + } else { + $("body").removeAttr("style"); + } if(scrollPosition != 0 ) { window.scrollTo(0, scrollPosition); scrollPosition = 0; } + beforeBodyStyle = ""; + isBodyScrollLocked = false; if(isSearch) { $('div.main-menu').show(); isSearch = false; @@ -1516,4 +1538,3 @@ $(window).on('load', function () { function isFunction(fn) { return typeof(fn) == 'function'; } -