O Bootstrap modal
adiciona automaticamente a classe modal-open
ao corpo quando uma caixa de diálogo modal é exibida e a remove quando a caixa de diálogo está oculta. Portanto, você pode adicionar o seguinte ao seu CSS:
body.modal-open {
overflow: hidden;
}
Você pode argumentar que o código acima pertence à base de código CSS do Bootstrap, mas essa é uma solução fácil para adicioná-lo ao seu site.
Atualização 8 de fevereiro de 2013
Agora, isso parou de funcionar no Twitter Bootstrap v. 2.3.0 - eles não adicionam mais a modal-open
classe ao corpo.
Uma solução alternativa seria adicionar a classe ao corpo quando o modal estiver prestes a ser exibido e removê-lo quando o modal estiver fechado:
$("#myModal").on("show", function () {
$("body").addClass("modal-open");
}).on("hidden", function () {
$("body").removeClass("modal-open")
});
Atualização 11 de março de 2013
Parece que a modal-open
classe retornará no Bootstrap 3.0, explicitamente com o objetivo de impedir a rolagem:
Reintroduz a abertura .modal no corpo (para que possamos nuke o pergaminho lá)
Veja isto: https://github.com/twitter/bootstrap/pull/6342 - veja a seção Modal .