Updated by Vlad 2017-10-02 View revision File scroll.js Modified Side-by-side diff More 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 2017-10-02 View revision File body.css Deleted More Ignore whitespace Hide word diff -body.scroll-locked { - position: fixed; - left: 0; - width: 100%; - height: 100%; - overflow: hidden; -} File scroll.js Modified Side-by-side diff More 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 Side-by-side diff More 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 2017-10-02 View revision File scroll.js Modified Side-by-side diff More 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 2017-10-02 View revision File scroll.js Modified Side-by-side diff More 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 2017-10-02 View revision File body.css Added Side-by-side diff More Ignore whitespace Hide word diff +body.scroll-locked { + position: fixed; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; +} File scroll.js Added Side-by-side diff More 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; + } +}