0.1.1 • Published 5 years ago

jd-popup v0.1.1

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

jdPopup API

  • IE9~ 호환.
  • 웹/모바일 옵션 분리 처리.

HTML

  • 레이어팝업 이동을 위한 버튼에 data-layer-id의 값을 레이어팝업 ID와 동일하게 부여.

<button type="button" data-layer-id="layer1">레이어팝업 열기</button>

  • 딤드는 dimmedEl 옵션에 부여한 값으로 클래스 설정.

<div class="dimmed"></div>

  • 레이어팝업은 id를 꼭 부여해야하며, 레이어팝업 닫기 버튼은 closeEl 옵션에 부여한 값으로 클래스 설정.
<div id="layer1" class="layer-pop">
    <div class="layer-pop-inner">
        <button type="button" class="btn-close">닫기</button>
    </div>
</div>

CSS

  • 기본구조
.dimmed{visibility:hidden;position:fixed;top:0;right:0;bottom:0;left:0;margin:auto;background-color:rgba(0,0,0,.3);opacity:0;}
.dimmed.on{visibility:visible;opacity:1;}
.layer-pop{visibility:hidden;position:absolute;top:0;left:50%;transform:translate(-50%,0);opacity:0;}
.layer-pop.on{visibility:visible;opacity:1;}
.layer-pop .layer-pop-inner{width:100%;height:100%;}

JS

  • 반응형 기본구조
var layer = new JdPopup('#layer1', {
    isDimmed: true,
    isFixed: false,
    turningPoint: 768,
    responsive: {
        isFixed: true
    }
});
  • 옵션값
속 성내 용기본값타 입
delegateTarget공통 이벤트 객체 셀렉터documentdocument 혹은 CSS selectors
containerEl레이어팝업 고정 시 노출되는 영역 셀렉터'.layout'CSS selectors
innerEl레이어팝업 내 내용 및 버튼 등을 감싸는 셀렉터'.layer-pop-inner'CSS selectors
closeEl레이어팝업 내 닫기 버튼 셀렉터'.btn-close'CSS selectors
dimmedEl배경 마스크 셀렉터'.dimmed'CSS selectors
setClass노출/미노출에 따른 class 속성 지정'on'classname
chainAttr레이어팝업과 연결시킬 버튼 data 속성'data-layer-id'data attribute
scrollTopDataAttr현재 스크롤 위치를 저장시킬 data 속성'data-st'data attribute
a11z접근성 적용 여부trueboolean
isDimmed배경 마스크 노출 여부falseboolean
isFixed레이어팝업 노출 시 스크롤 고정 여부falseboolean
onStart레이어팝업 노출 시 transitionstartfunction
onEnd레이어팝업 노출 시 transitionendfunction
offStart레이어팝업 미노출 시 transitionstartfunction
offEnd레이어팝업 미노출 시 transitionendfunction
turningPointresponsive 옵션 설정 시 분기 사이즈768number
responsive뷰 사이즈가 turningPoint 이하인 경우 옵션값 설정object
  • 기능
설명메서드paramexample
이벤트 초기화.eventfalselayer.event(false)
이벤트 재설정.eventtruelayer.event(true)
class 추가.addelementlayer.add(document.querySelector('.dimmed')
class 제거.removeelementlayer.remove(document.querySelector('.dimmed')
레이어팝업 노출.onlayer.on()
레이어팝업 미노출.offlayer.off()