Один из способов сделать это - установить переполнение документа скрытым при открытии диалогового окна ColorBox, а затем восстановить его при закрытии.Вы можете привязать к пользовательским событиям jQuery, которые использует ColorBox:
$(document).bind('cbox_open', function () {
$('html').css({ overflow: 'hidden' });
}).bind('cbox_closed', function () {
$('html').css({ overflow: 'auto' });
});
Существует небольшой скачок, когда полоса прокрутки в родительском окне исчезает и снова появляется.Это беспокоило меня, поэтому я использовал метод mousewheel, как описано в этом вопросе SO: Запретить прокрутку родительского элемента?
Мое использование немного сложнее, потому что я использую iframe внутри ColorBoxявно установить полосу прокрутки.Я запустил скрипт на странице iframe, привязанный к событию mousewheel, и остановил распространение в нижней части элемента.Для простого использования ColorBox вы должны иметь возможность создать повторно используемое решение, связав событие mousewheel с прокручиваемым элементом в кадре ColorBox.