This is done using JavaScript, the DOM and styles: you create a div large enough to cover you application with the zIndex of 10000, this way the user won’t be able to use what’s behind the div, to make it transparent you apply a style to the div, for example:
.TransDiv {
background-color:Gray;
opacity:0.5;
filter:alpha(opacity=50);
}
When you want to let the user use the application again just hide the div
If this post helped you please remember to set it as Answer so it can help others.