Ich verwende this script, um eine modale Ansicht anzuzeigen und auszublenden, aber ich möchte das Scrollen auf Körper deaktivieren, sobald die modale Ansicht geöffnet ist, und deaktivieren, wenn sie geschlossen ist.Scrolling auf Körper in Overlay-Modalansicht deaktivieren
Ich habe versucht, den JS-Code zu ändern, aber es funktioniert, aber es bricht die Eröffnungsanimation. hier ist der Code geändert:
(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);})();
Original-Demo: jsfiddle
Wenn Sie sich meinen Code ansehen, werden Sie feststellen, dass ich versucht habe, diese Lösung zu implementieren, aber wie ich bereits erwähnt habe, funktioniert es nicht, es unterbricht die Animation – Dev4life