2017 © Pedro Peláez
 

library bootstrap-modal

Extends the default Bootstrap Modal class. Responsive, stackable, ajax and more.

image

jschr/bootstrap-modal

Extends the default Bootstrap Modal class. Responsive, stackable, ajax and more.

  • Tuesday, October 10, 2017
  • by adam-lynch
  • Repository
  • 280 Watchers
  • 5083 Stars
  • 19,869 Installations
  • JavaScript
  • 1 Dependents
  • 0 Suggesters
  • 1205 Forks
  • 111 Open issues
  • 4 Versions
  • 5 % Grown

The README.md

Note: Since this plugin was created to solve a lot of the issues with BS2, it still uses the BS2 markup syntax. Currently I believe the default BS3 modal addresses some of the bigger issues and is not worth maintaining two versions of this plugin., (*1)

Bootstrap Modal v2.2.6

See live demo here., (*2)

Extends Bootstrap's native modals to provide additional functionality. Introduces a ModalManager class that operates behind the scenes to handle multiple modals by listening on their events., (*3)

A single ModalManager is created by default on body and can be accessed through the jQuery plugin interface., (*4)

    $('body').modalmanager('loading');

Bootstrap-Modal can be used as a replacement for Bootstrap's Modal class or as a patch to the library., (*5)

Bootstrap 3

If you're using BS3, I've provided a compatible css patch. Include bootstrap-modal-bs3patch.css before the main bootstrap-modal.css file to use this plugin with Bootstrap 3., (*6)

If you're using the loading spinner functionality you may also need to change the default template to be compatible in js:, (*7)

    $.fn.modal.defaults.spinner = $.fn.modalmanager.defaults.spinner = 
        '<div class="loading-spinner" style="width: 200px; margin-left: -100px;">' +
            '<div class="progress progress-striped active">' +
                '<div class="progress-bar" style="width: 100%;"></div>' +
            '</div>' +
        '</div>';

Overview

  • Backwards compatible
  • Responsive
  • Stackable
  • Full width
  • Load content via AJAX
  • Disable background scrolling

Installation

  • Include css/bootstrap-modal.css after the main bootstrap css files.
  • Include js/bootstrap-modalmanager.js and js/bootstrap-modal.js after the main bootstrap js files.
    <link href="css/bootstrap.css" rel="stylesheet" />
    <link href="css/bootstrap-responsive.css" rel="stylesheet" />
    <link href="css/bootstrap-modal.css" rel="stylesheet" />

    <script src="js/bootstrap.js"></script>
    <script src="js/bootstrap-modalmanager.js"></script>
    <script src="js/bootstrap-modal.js"></script>

Options

In addition to the standard bootstrap options, you now have access to the following options, (*8)

Modal, (*9)

  • width Set the initial width of the modal., (*10)

  • height Set the initial height of the modal., (*11)

  • maxHeight Set the max-height of the modal-body., (*12)

  • loading Toggle the loading state., (*13)

  • spinner Provide a custom image or animation for the loading spinner., (*14)

  • backdropTemplate Provide a custom modal backdrop., (*15)

  • consumeTab Used to enable tabindexing for modals with data-tabindex. This is set to true by default., (*16)

  • focusOn The element or selector to set the focus to once the modal is shown., (*17)

  • replace If set to true, the modal will replace the topmost modal when opened., (*18)

  • attentionAnimation Set the animation used by the attention method. Any animation in animate.css is supported but only the shake animation is included by default., (*19)

  • modalOverflow Set this property to true for modals with highly dynamic content. This will force the modal to behave as if it is larger than the viewport., (*20)

  • manager Set the modal's manager. By default this is set to the GlobalModalManager and will most likely not need to be overridden., (*21)

ModalManager, (*22)

  • loading Toggle the loading state., (*23)

  • backdropLimit Limit the amount of backdrops that will appear on the page at the same time., (*24)

  • spinner Provide a custom image or animation for the loading spinner., (*25)

  • backdropTemplate Provide a custom modalmanager backdrop. This backdrop is used when $element.modalmanager('loading') is called., (*26)

Getting a reference to the modal manager

If you did not created your own ModalManager, perhaps you'll need a reference to it. That can be easily accomplished using the following snippet:, (*27)

    var modalManager = $("body").data("modalmanager");
    var openModals = modalManager.getOpenModals();
    modalManager.removeLoading();

After that, you'll be able to call any methods that modal manager has, such as:, (*28)

  • removeLoading (remove the loading and backdrop window);
  • getOpenModals (to get the modals that are already open);
  • etc;

Disable Background Scrolling

If you want to prevent the background page from scrolling (see demo for example) you must wrap the page contents in a <div class="page-container">. For example:, (*29)

    <body>
       <div class="page-container">
          <div class="navbar navbar-fixed-top">...</div>
          <div class="container">...</div>
       </div>
    </body>

The reason for doing this instead of just simply setting overflow: hidden when a modal is open is to avoid having the page shift as a result of the scrollbar appearing/disappearing. This also allows the document to be scrollable when there is a tall modal but only to the height of the modal, not the entire page., (*30)

Constrain Modal to Window Size

You can bind the height of the modal body to the window with something like this:, (*31)

    $.fn.modal.defaults.maxHeight = function(){
        // subtract the height of the modal header and footer
        return $(window).height() - 165; 
    }

Note: This will be overwritten by the responsiveness and is only set when the modal is displayed, not when the window is resized., (*32)

Tab Index for Modal Forms

You can use data-tabindex instead of the default tabindex to specify the tabindex within a modal., (*33)

    <input type="text" data-tabindex="1" />
    <input type="text" data-tabindex="2" />

See the stackable example on the demo page for an example., (*34)

Bitdeli Badge, (*35)

The Versions

10/10 2017

dev-master

9999999-dev https://github.com/jschr/bootstrap-modal.git

Extends the default Bootstrap Modal class. Responsive, stackable, ajax and more.

  Sources   Download

Apache License 2.0

bootstrap javascript modal

02/03 2015

2.2.6

2.2.6.0 https://github.com/jschr/bootstrap-modal.git

Extends the default Bootstrap Modal class. Responsive, stackable, ajax and more.

  Sources   Download

Apache License 2.0

bootstrap javascript modal

28/04 2014

2.2.5

2.2.5.0 https://github.com/jschr/bootstrap-modal.git

Extends the default Bootstrap Modal class. Responsive, stackable, ajax and more.

  Sources   Download

Apache License 2.0

bootstrap javascript modal

26/01 2013

2.1.0

2.1.0.0 https://github.com/jschr/bootstrap-modal.git

Extends the default Bootstrap Modal class. Responsive, stackable, ajax and more.

  Sources   Download

Apache License 2.0

bootstrap javascript modal