Простым решением было бы иметь скрытый div, который будет действовать как наложение.Он всегда будет иметь те же размеры и расположение, что и ваш div "mainContent".Затем покажите этот div поверх вашего контента, используя z-index.Затем поместите ваш модал поверх оверлея.
Чистый эффект, все будет покрыто основной областью контента наложением, но ваш модал будет лежать поверх оверлея, и поэтому пользователь может взаимодействовать только с ним.
Правки:
Управление Z-индексами : Я бы просто установил наложение z-index на большое базовое число, чтобы избежать конфликтов с другими z-индексами.Затем, когда бы вы ни показывали модальное значение, просто используйте селекторы jquery, которые ищут показанные наложения, и увеличивайте модальный z-индекс на одно из этих чисел.javascript для размещения вашего оверлея над нужной областью.Я думаю, что использование абсолютного позиционирования сделает это легко.Тогда, очевидно, вы должны расположить модальный div в центре оверлейного div.
На самом деле вычисления не так уж сложно расположить в центре.Дайте мне знать, если вы хотите, чтобы я взялся за эту работу.