Snippets

Oleg Chulakov Studio iOS Safari overlay scroll fix

Updated by Vlad

File scroll.js Modified

  • Ignore whitespace
  • Hide word diff
 var bodyScrollTop = null;
 var locked = false;
 
-// Заблокировать скролл
+/* Заблокировать скролл */
 function lockScroll(){
 	if (!locked) {
 		bodyScrollTop = body.scrollTop;
 	};
 }
 
-// Включить скролл
+/* Включить скролл */
 function unlockScroll(){
 	if (locked) {
 		body.classList.remove('scroll-locked');
Updated by Vlad

File body.css Deleted

  • Ignore whitespace
  • Hide word diff
-body.scroll-locked {
-	position: fixed;
-	left: 0;
-	width: 100%;
-	height: 100%;
-	overflow: hidden;
-}

File scroll.js Modified

  • Ignore whitespace
  • Hide word diff
 var bodyScrollTop = null;
 var locked = false;
 
+// Заблокировать скролл
 function lockScroll(){
 	if (!locked) {
 		bodyScrollTop = body.scrollTop;
 	};
 }
 
+// Включить скролл
 function unlockScroll(){
 	if (locked) {
 		body.classList.remove('scroll-locked');

File style.css Added

  • Ignore whitespace
  • Hide word diff
+// Эти стили отключат прокрутку на странице
+body.scroll-locked {
+	position: fixed;
+	left: 0;
+	width: 100%;
+	height: 100%;
+	overflow: hidden;
+}
+
+// Эти включат прокрутку внутри блока, появившегося поверх страницы
+.modal {
+	overflow: auto;
+	-webkit-overflow-scrolling: touch;
+}
Updated by Vlad

File scroll.js Modified

  • Ignore whitespace
  • Hide word diff
 		bodyScrollTop = body.scrollTop;
 		body.classList.add('scroll-locked');
 		body.style.top = `-${bodyScrollTop}px`;
-	  locked = true;
+		locked = true;
 	};
 }
 
Updated by Vlad

File scroll.js Modified

  • Ignore whitespace
  • Hide word diff
 		body.classList.remove('scroll-locked');
 		body.style.top = null;
 		window.scrollTo(0, bodyScrollTop);
-        locked = false;
+		locked = false;
 	}
 }
Created by Vlad

File body.css Added

  • Ignore whitespace
  • Hide word diff
+body.scroll-locked {
+	position: fixed;
+	left: 0;
+	width: 100%;
+	height: 100%;
+	overflow: hidden;
+}

File scroll.js Added

  • Ignore whitespace
  • Hide word diff
+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;
+	}
+}
  1. 1
  2. 2
HTTPS SSH

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