yaroslav-mygal
1/19/2016 - 1:07 PM

Vertically Centered Bootstrap Modals

Vertically Centered Bootstrap Modals

/**
 * Vertically center Bootstrap 3 modals so they aren't always stuck at the top
 */
$(function() {

    function reposition() {

        var modal = $(this),
            dialog = modal.find('.modal-dialog');

        modal.css('display', 'block');
        
        // Dividing by two centers the modal exactly, but dividing by three 
        // or four works better for larger screens.
        dialog.css("margin-top", Math.max(0, ($(window).height() - dialog.height()) / 2));

    }

    // Reposition when a modal is shown
    $('.modal').on('show.bs.modal', reposition);

    // Reposition when the window is resized
    $(window).on('resize', function() {
        $('.modal:visible').each(reposition);
    });

});