모달보기를 표시하고 숨기려면 this script을 사용하고 있지만 모달보기가 열리면 본문에 대한 스크롤을 사용하지 않도록 설정하고 닫으면 해제 할 수 있습니다.오버레이 모달보기에서 본문 스크롤링 사용 안 함
JS 코드를 수정하려고했지만 작동하지만 오프닝 애니메이션이 손상됩니다. 여기 수정 된 코드는 다음과 같습니다
(function() {
var triggerBttn = document.getElementById('trigger-overlay'),
overlay = document.querySelector('div.overlay'),
bodyTag = document.querySelector('body'),
closeBttn = overlay.querySelector('button.overlay-close');
transEndEventNames = {
'WebkitTransition': 'webkitTransitionEnd',
'MozTransition': 'transitionend',
'OTransition': 'oTransitionEnd',
'msTransition': 'MSTransitionEnd',
'transition': 'transitionend'
},
transEndEventName = transEndEventNames[ Modernizr.prefixed('transition') ],
support = { transitions : Modernizr.csstransitions };
function toggleOverlay() {
if(classie.has(overlay, 'open')) {
classie.remove(overlay, 'open');
classie.add(overlay, 'close');
var onEndTransitionFn = function(ev) {
if(support.transitions) {
if(ev.propertyName !== 'visibility') return;
this.removeEventListener(transEndEventName, onEndTransitionFn);
}
classie.remove(overlay, 'close');
classie.remove(bodyTag, 'noscroll');
};
if(support.transitions) {
overlay.addEventListener(transEndEventName, onEndTransitionFn);
}
else {
onEndTransitionFn();
}
}
else if(!classie.has(overlay, 'close')) {
classie.add(overlay, 'open');
classie.add(bodyTag, 'noscroll');
}
}
triggerBttn.addEventListener('click', toggleOverlay);
closeBttn.addEventListener('click', toggleOverlay);})();
원래 데모 : 이미 여기에 설명 jsfiddle
내 코드를 살펴보면이 솔루션을 구현하려했으나 작동하지 않는다고 언급 했으므로 애니메이션이 중단됩니다 – Dev4life