Snippets

Oleg Chulakov Studio iOS Safari overlay scroll fix

You are viewing an old version of this snippet. View the current version.
Revised by Vlad f23787b
var body = document.getElementsByTagName('body')[0];
var bodyScrollTop = null;
var locked = false;

/* Заблокировать прокрутку страницы */
function lockScroll(){
	if (!locked) {
		bodyScrollTop = body.scrollTop;
		body.classList.add('scroll-locked');
		body.style.top = `-${bodyScrollTop}px`;
		locked = true;
	};
}

/* Включить прокрутку страницы */
function unlockScroll(){
	if (locked) {
		body.classList.remove('scroll-locked');
		body.style.top = null;
		window.scrollTo(0, bodyScrollTop);
		locked = false;
	}
}
// Эти стили отключат прокрутку на странице
body.scroll-locked {
	position: fixed;
	left: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

// Эти включат прокрутку внутри блока, появившегося поверх страницы
.modal {
	overflow: auto;
	-webkit-overflow-scrolling: touch;
}
HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.