Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jschr/bootstrap-modal
Extends the default Bootstrap Modal class. Responsive, stackable, ajax and more.
https://github.com/jschr/bootstrap-modal
bootstrap bootstrap-modal modal modalmanager
Last synced: 26 days ago
JSON representation
Extends the default Bootstrap Modal class. Responsive, stackable, ajax and more.
- Host: GitHub
- URL: https://github.com/jschr/bootstrap-modal
- Owner: jschr
- License: apache-2.0
- Created: 2012-09-26T20:06:00.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2019-04-07T20:15:00.000Z (over 5 years ago)
- Last Synced: 2024-05-02T00:55:00.954Z (6 months ago)
- Topics: bootstrap, bootstrap-modal, modal, modalmanager
- Language: JavaScript
- Homepage: http://jschr.github.io/bootstrap-modal/
- Size: 168 KB
- Stars: 5,010
- Watchers: 252
- Forks: 1,097
- Open Issues: 110
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-javascript - bootstrap-modal - Extends the default Bootstrap Modal class. Responsive, stackable, ajax and more. - ★ 5088 (Modals and Popups)
README
**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.
Bootstrap Modal v2.2.6
=============See live demo [here](http://jschr.github.com/bootstrap-modal/).
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.
A single ModalManager is created by default on body and can be accessed through the jQuery plugin interface.
```javascript
$('body').modalmanager('loading');
```
Bootstrap-Modal can be used as a replacement for Bootstrap's Modal class or as a patch to the library.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.
If you're using the loading spinner functionality you may also need to change the default template to be compatible in js:
```html
$.fn.modal.defaults.spinner = $.fn.modalmanager.defaults.spinner =
'' +';
'' +' +
'' +
'
'
```Overview
-----------+ Backwards compatible
+ Responsive
+ Stackable
+ Full width
+ Load content via AJAX
+ Disable background scrollingInstallation
-----------
+ 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.
```html
```
Options
-----------In addition to the standard bootstrap options, you now have access to the following options
**Modal**
+ **width**
Set the initial width of the modal.+ **height**
Set the initial height of the modal.+ **maxHeight**
Set the max-height of the modal-body.+ **loading**
Toggle the loading state.+ **spinner**
Provide a custom image or animation for the loading spinner.+ **backdropTemplate**
Provide a custom modal backdrop.+ **consumeTab**
Used to enable tabindexing for modals with `data-tabindex`. This is set to true by default.+ **focusOn**
The element or selector to set the focus to once the modal is shown.+ **replace**
If set to true, the modal will replace the topmost modal when opened.+ **attentionAnimation**
Set the animation used by the `attention` method. Any animation in [animate.css](http://daneden.me/animate/) is supported but only the *shake* animation is included by default.+ **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.+ **manager**
Set the modal's manager. By default this is set to the `GlobalModalManager` and will most likely not need to be overridden.**ModalManager**
+ **loading**
Toggle the loading state.+ **backdropLimit**
Limit the amount of backdrops that will appear on the page at the same time.+ **spinner**
Provide a custom image or animation for the loading spinner.+ **backdropTemplate**
Provide a custom modalmanager backdrop. This backdrop is used when `$element.modalmanager('loading')` is called.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:
```javascript
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:
* 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](http://jschr.github.com/bootstrap-modal/) for example) you must wrap the page contents in a `
`. For example:
```html
...
```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.
Constrain Modal to Window Size
-----------
You can bind the height of the modal body to the window with something like this:
```javascript
$.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.
Tab Index for Modal Forms
-----------
You can use `data-tabindex` instead of the default `tabindex` to specify the tabindex within a modal.
```html
```
See the stackable example on the [demo](http://jschr.github.com/bootstrap-modal/) page for an example.
[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/jschr/bootstrap-modal/trend.png)](https://bitdeli.com/free "Bitdeli Badge")