For desktop:
1. 스크롤바를 하나 둔다.
<div id="scrollbar"></div>
<style>
#scrollbar {
position: fixed; top: 0; right:0; height: 100%;
overflow-y: scroll;
display: none;
opacity:0.5;
}
</style>
2. <body>가 스크롤이 금지되면 빨갛게 표시되도록 하자. <body>는 처음에는 스크롤이 가능하다. (스크롤 금지 = off 이다).
<style>
body.on { background-color:red; }
</style>
$(document).ready(function() {
var container = $('body').addClass('off');
...
}
3. <html>이 클릭될 때마다 스크롤을 금지하거나 허용한다.
For mobile:
간단하다. 터치이벤트를 다 먹어 치운다.
$('body').bind('touchmove', function(e) {
e.preventDefault();
});
$('body').unbind('touchmove');
$(document).ready(function() {
$('html').on('click', function(){
if(container.hasClass('off')){
var bw = $('body').width();
var sw = $('#scrollbar').width();
var wh = $(window).height();
var dh = $(document).height();
container.toggleClass('on off');
$('body').css('overflow', 'hidden').width( bw-sw );
if( wh < dh )
$('#scrollbar').show();
}
else if(container.hasClass('on')){
container.toggleClass('on off');
$('#scrollbar').hide();
$('body').css('overflow', '').css('width', '');
};
});
});
For mobile:
간단하다. 터치이벤트를 다 먹어 치운다.
$('body').bind('touchmove', function(e) {
e.preventDefault();
});
$('body').unbind('touchmove');