Many suggest "overflow: hidden" on the body, which will not work (not in my case at least), since it will make the website scroll to the top.
This is the solution that works for me (both on mobile phones and computers), using jQuery:
$('.yourModalDiv').bind('mouseenter touchstart', function(e) {
var current = $(window).scrollTop();
$(window).scroll(function(event) {
$(window).scrollTop(current);
});
});
$('.yourModalDiv').bind('mouseleave touchend', function(e) {
$(window).off('scroll');
});
This will make the scrolling of the modal to work, and prevent the website from scrolling at the same time.