Working with Bootstrap Plugin: Modal Window

By . Filed in Web Design

Bootstrap has gained a lot popularity among web designers and developers, in this site BuiltWithBootstrap you can see that there are many sites that have adopted Bootstrap as the foundation of their website or webapps.

In our previous post we walked through some UI Components in Bootstrap. This time, in this post we are going to explore, Bootstrap Plugins.

As we mentioned before, Bootstrap comes with a number of custom jQuery plugins that work seamlessly with each other. So, we don’t have to rely on third-party plugins which may have script clashes.

In this post we are going to explore the following plugin that attracts me most: Modal Window.

Setup the document

Before we can run these plugins, make sure that all the necessary files have been included in our document, as follows:

<link rel="stylesheet" href="css/bootstrap.css">
<script src="js/jquery.js" type="text/javascript"></script>	
<script src="js/bootstrap.js" type="text/javascript"></script>

Since it is a jQuery plugin, don’t forget to also include the jQuery library, otherwise it won’t work. If all is set, we are good to go.

The Modal Window

Using Modal is the better method to get attention from users versus using pop-up windows which could be blocked by the browsers. Let’s see the following example:

The modal window in Bootstrap is simply defined as modal class. We can add several sections in it, like the content and the header, each can be contained with a div and respectively assigned with these classes modal-body and modal-header.

<div id="modal" class="modal">
	<div class="modal-header">
		<h2>Lorem Ipsum</h2>
	</div>	
	<div class="modal-body">
		<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec placerat sem ipsum, ut faucibus nulla. 
		Nullam mattis volutpat dolor, eu porta magna facilisis ut. In ultricies, purus sed pellentesque mollis, nibh 
		tortor semper elit, eget rutrum purus nulla id quam.</p>
	</div>
</div>

We haven’t done any fancy stuff here. Thus, this markup will give only the following result in the browser.

Assign the Trigger

Furthermore, let’s say we want this modal window to only show with a click as the trigger, we need to do the following. First, we add hide class in the div to hide the modal window, like so:

<div id="modal" class="modal hide">
	<div class="modal-header">
		<h2>Lorem Ipsum</h2>
	</div>	
	<div class="modal-body">
		<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
		Donec placerat sem ipsum, ut faucibus nulla. Nullam mattis volutpat
		dolor, eu porta magna facilisis ut. In ultricies, purus sed pellentesque 
		mollis, nibh tortor semper elit, eget rutrum purus nulla id quam.</p>
	</div>
</div>

Then, anywhere on the Web page, we add a button link.

<a href="#modal" role="button" class="btn" data-toggle="modal">Click Me</a> 

Notice the data- attribute in the button, it’s a new attribute added in HTML5 specification, and in this case we use this attribute to target our modal window.

Lastly, to activate the modal, place this jQuery line.

$('#modal').modal();

Go back to the browser and refresh. You should see the modal window now hidden and we have the button in there. Now, when we click on the button, the modal window will pop up instanteneously.

The Close Button

There is a constraint though. How do we hide the modal window?. To do so, we need to put a button element inside the modal window header:

<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>

In this button we also added a data- attribute that pointed to the modal window. That’s it, all other things like the class and the function have been taken care of and once we click on this button, the window should be hidden.

Fade Effect

Now, let’s make the modal window fancier. In this case, we are going to add the fade effect. To do so, we simply add fade class in in the div, as follows.

<div id="modal" class="modal hide fade">
	<div class="modal-header">
		<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
		<h2>Lorem Ipsum</h2>
	</div>	
	<div class="modal-body">
		<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
		Donec placerat sem ipsum, ut faucibus nulla. Nullam mattis volutpat
		dolor, eu porta magna facilisis ut. In ultricies, purus sed pellentesque 
		mollis, nibh tortor semper elit, eget rutrum purus nulla id quam.</p>
	</div>
</div>

Now, instead of showing up instantly, the modal window will slide down and fade in, then when close the window it will do the opposite, slide up and fade out. Most of these effect is done through the CSS3 new properties.

Bonus Tip

The Modal window plugin in Bootstrap is easy to implement. But, can we use it for other than the Bootstrap framework? Fortunately, Bootstrap has provided an option to download only necessary parts of Bootstrap. So, if you need only this plugin for your non-Bootstrap website, here is what you can do:

In Bootstrap website, go to Customization page. In this page, uncheck all the options and select only the following:

  • Buttons style under Base CSS.
  • Modals under JS Components.
  • Modal under jQuery plugins.

That way, our files will not be bloated with other library codes that are not necessary.

Author:

Thoriq has been dabbling in Web Design for 5 years and appreciates the giving nature of the web design community at large. He loves trying new things in CSS3 and HTML5. Apart from writing on hongkiat.com he also maintains creatiface.

Advertisement