MetroBox – Unique Responsive Lightbox jQuery
MetroBox is a Responsive LightBox jQuery plugin for displaying photos/videos or anything you want with visitor/user comments ( like social network features ). With this plugin you can show photos/video with their comments and other information. Additional, the responsive design and swipe feature make this plugin can work well on almost platforms.
Demos:
MetroBox Responsive Lightbox jQuery Demo
MetroBox Features:
- Responsive Design.
- Swipe to move next/prev content.
- Support all HTML content ( Text, images, video, iframe … ).
- Show Comment For Each Content.
- Show Custom Content For Each Content.
- Easy Make Infinite Gallery with Content Group.
- Custom Content Box for Text, HTML , PHP…
- Many Options to Customize Colors, Background, Content, Comments.
- Ajax load.
Change Logs:
26 Sep 2014: Version 1.4:
- Improve Scrolling Feature in Content Zone for mobile.
05 May 2014: Version 1.3:
- Fix bugs.
- Change CSS file structure.
- Optimize souce code.
- Add HTML demo version.
20 Apr 2013: Version 1.2:
- Support ESC key to close MetroBox.
- Support Left and Right Arrow keys to move next/prev boxes.
- Add a javascript param to change content file extension ( ext ).
- Update new versions of jQuery Library and jQuery UI.
03 Oct 2012: Version 1.1:
- Add new custom content zone.
- Support swipe to move content in group.
- Fix some display bugs on mobile devices.
- Support infinite gallery.
20 Aug 2012: First Version.
Credits:
- jQuery Library.
- jQuery UI.
- Touch Punch Plugin.
- jScrollPane Plugin.
- MouseWheel Plugin.
Table of Contents:
- Setup MetroBox Plugin.
- Call MetroBox Plugin.
- Content Package Structure.
- Comment Package Structure.
- Parameters.
[ga_res]
Section 1: Setup MetroBox Plugin.
First of all, to ensure everything works correctly, please use <!DOCTYPE html> at top of the page.
Include the following code into HEAD section of the page.
Include CSS files:
<link rel="stylesheet" href="css/sonhlab-base.css" type="text/css" /> <link rel="stylesheet" href="css/metrobox.css" type="text/css" /> <meta name="viewport" content="width=device-width, user-scalable=no" /> <!-- IE 8 --> <!--[if lt IE 9]> <link rel="stylesheet" href="css/metrobox-ie.css" type="text/css" /> <link rel="stylesheet" href="css/sonhlab-fix-ie8.css" type="text/css" /> <![endif]-->
Include Javascript files:
<!-- Start jQuery Library --> <!--[if !IE]> --> <script type="text/javascript" src="js/jquery/jquery.min.2.1.1.js"></script> <!-- <![endif]--> <!--[if gte IE 9]> <script type="text/javascript" src="js/jquery/jquery.min.2.1.1.js"></script> <![endif]--> <!--[if lt IE 9]> <script type="text/javascript" src="js/jquery/jquery.min.1.11.1.js"></script> <![endif]--> <!-- End jQuery Library --> <!-- jQuery UI --> <script type="text/javascript" src="js/jquery/jquery-ui.1.11.1.min.js"></script> <!-- mousewheel plugin --> <script type="text/javascript" src="js/jscrollpane/jquery.mousewheel.min.js"></script> <!-- jScrollPane script --> <script type="text/javascript" src="js/jscrollpane/jquery.jscrollpane.min.js"></script> <!-- Touch Punch --> <script type="text/javascript" src="js/touchpunch.min.js"></script> <!-- MetroBox plugin --> <script type="text/javascript" src="js/metrobox.min.js"></script>
Setup is done.
Section 2: Call MetroBox Plugin.
This section should be read along with the example file ( “metrobox.php” file ) also contained in the download package.
To call the plugin we need to add a script like bellow into the <head> tag
<script type="text/javascript"> $(element).metrobox({ metroboxBg: 'img-purtywood', mbHeaderBg: 'transparent-black', mbFooterBg: 'transparent-black', mbContentBg: 'transparent-black', mbContentTypo: 'light', mbCommentState: 1, mbCommentBg: 'solid-smoke', mbCommentTypo: 'dark', mbAuthorBg: 'solid-blue', mbBreaklineColor: 'transparent-smoke', mbContentScrollbar: 'transparent-black', mbCommentScrollbar: 'solid-black', mbAnimEffect: 'fade', mbAnimDuration: 400, mbcontentAnimEffect: 'fade', mbcontentDuration:400, ext: 'php' }); </script>
HTML:
To determine which content will be shown We need to add a data-mbid attribute into the element.
<span id="demo" data-mbid="demo-content">Demo MetroBox</span>
With HTML code above when we click on “Demo MetroBox” the plugin will get content in link:
“content/metrobox/mb-content.php?mbid=demo-content”
And comments will be loaded from link:
“content/metrobox/mb-comment.php?mbid=demo-content”
To group many content we need to add a data-mbgid with the same value for all content you want them in a group.
<div class="thumbnails" data-mbgid="mb-contentgroup-1" data-mbid="mb-content-4"> <img src="content/metrobox/mb-demo-img/pic-2.jpg" /> </div> <div class="thumbnails" data-mbgid="mb-contentgroup-1" data-mbid="mb-content-5"> <img src="content/metrobox/mb-demo-img/pic-3.jpg" /> </div> <div class="thumbnails" data-mbgid="mb-contentgroup-1" data-mbid="mb-content-6"> <img src="content/metrobox/mb-demo-img/pic-4.jpg" /> </div> <div class="thumbnails" data-mbgid="mb-contentgroup-1" data-mbid="mb-content-6"> <img src="content/metrobox/mb-demo-img/pic-5.jpg" /> </div> <div class="thumbnails" data-mbgid="mb-contentgroup-1" data-mbid="mb-content-7"> <img src="content/metrobox/mb-demo-img/pic-6.jpg" /> </div> <div class="thumbnails" data-mbgid="mb-contentgroup-1" data-mbid="mb-content-9"> <img src="content/metrobox/mb-demo-img/pic-7.jpg" /> </div>
When we click on an image in HTML above ( example: we click on pic-2.jgp ). The plugin will get content in the link:
“content/metrobox/mb-content.php?mbgid=mb-contentgroup-1&mbid=mb-content-4“.
End Section 2.
Section 3: Content Package Structure.
This section should be read along with the demo files also contained in the download package.
A content package will has a structure like below (You need to follow the structure to make sure the content will be displayed correctly):
<div id="mbid-value" class="mbgid-value"> <div class="mb-content"> // Add Content Here </div> </div>
mbid-value: This is the value of data-mbid in the HTML element.
mbgid-value: This is the value of data-mbgid in the HTML element. If the element does not have data-mbgid value we can ignore this class.
Example:
1. Content with paragraph:
<div id="mb-content-1"> <div class="mb-content"> <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry.</p> </div> </div>
2. Image Content (we use “mb-imgholder” and “mb-reponsive-img” classes for responsive design):
<div id="mb-content-2"> <div> <div> <img src="content/metrobox/mb-demo-img/pic-1.jpg" alt="" class="mb-responsive-img" /> </div> </div> </div>
3. Video/Iframe ( we use “mb-videoholder” and “mb-responsive-video” for responsive design ):
<div id="mb-content-3"> <div class="mb-content"> <div class="mb-videoholder"> <iframe src="youtube-link/vimeo-link" class="mb-responsive-video"></iframe> </div> </div> </div>
4. Content Group:
<div id="mb-content-4" class="mb-contentgroup-1"> <div class="mb-content"> <div class="mb-imgholder"> <img src="content/metrobox/mb-demo-img/pic-2.jpg" alt="" class="mb-responsive-img mb-swipe" /> </div> </div> </div> <div id="mb-content-5" class="mb-contentgroup-1"> <div class="mb-content"> <div class="mb-imgholder"> <img src="content/metrobox/mb-demo-img/pic-3.jpg" alt="" class="mb-responsive-img mb-swipe" /> </div> </div> </div> <div id="mb-content-6" class="mb-contentgroup-1"> <div class="mb-content"> <div class="mb-imgholder"> <img src="content/metrobox/mb-demo-img/pic-4.jpg" alt="" class="mb-responsive-img mb-swipe" /> </div> </div> </div>
*mb-swipe class: use to enable swipe feature. This feature just work when it is used in a content group.
End Section 3.
Section 4: Comment Package Structure.
This section should be read along with the content file ( “content/metrobox/mb-comment.php” file ) also contained in the download package.
A comment package has structure like below:
<div class="mb-comments"> <div class="mb-cmmes"> <!-- Author Info --> <div class="mb-author"> <div class="mb-useravatar"><img src="images/metrobox/avatar/demo.jpg" alt="" /></div> <div class="mb-meszone"> <span class="mb-cmuser">Author's Name</span> <span class="mb-cmdate">Created date</span> </div> <div class="clearspace"></div> </div> <!-- End Author Info --> <!-- Comment 1 --> <div class="mb-commentpackage"> <div class="mb-useravatar"><img src="images/metrobox/avatar/demo.jpg" alt="" /></div> <div class="mb-meszone"> <span class="mb-cmuser">Username</span> <span class="mb-cmmessage">Message</span> <span class="mb-cmdate">Comment date</span> </div> <div class="clearspace"></div> </div> <div class="breakline"></div> <!-- End Comment 1 --> <!-- Comment 2 --> <div class="mb-commentpackage"> <div class="mb-useravatar"><img src="images/metrobox/avatar/demo.jpg" alt="" /></div> <div class="mb-meszone"> <span class="mb-cmuser">Username</span> <span class="mb-cmmessage">Message</span> <span class="mb-cmdate">Comment date</span> </div> <div class="clearspace"></div> </div> <div class="breakline"></div> <!-- End Comment 2 --> </div> </div>
End Section 4.
Section 5: Parameters.
Javascript Parameters:
Parameters | Properties | Description |
metroboxBg | string | This param is used to set background for MetroBox. Use Color classes in CSS file. |
mbHeaderBg | string | This param is used to set background for MetroBox Header panel. Use Color classes in CSS file. |
mbFooterBg | string | This param is used to set background for MetroBox Footer panel. Use Color classes in CSS file. |
mbContentBg | string | This param is used to set background for MetroBox Content. Use Color classes in CSS file. |
mbContentTypo | string | This param is used to set font, color for Content. Use Color classes in CSS file. |
mbCommentState | boolean | This param is used to enable/disable Comment box. Value: 1: enable, 0: disable. Default: 1. |
mbCustomState | boolean | This param is used to enable/disable Custom Content box Value: 1: enable, 0: disable Default: 1 |
mbCommentBg | string | This param is used to set background for Comment Box. Use Color classes in CSS file. |
mbCommentTypo | string | This param is used to set font, color for Comment Box. Use Color classes in CSS file. |
mbContentScrollbar | string | This param is used to set scrollbar color for Content Box. Use Color classes in CSS file. |
mbCommentScrollbar | string | This param is used to set scrollbar color for Comment Box. Use Color classes in CSS file. |
mbAuthorBg | string | This param is used to set background for Author in Comment Box. Use Color classes in CSS file. |
mbBreaklineColor | string | This param is used to set breakline color in Comment Box. Use Color classes in CSS file. |
mbAnimEffect | string | This param is used to set animation effect to open and close MetroBox. Value: none, fade. Default: fade. |
mbAnimDuration | integer | This param is used to set duration for mbAnimEffect. Default: 400. |
mbcontentAnimEffect | string | This param is used to set animation effect to show and hide MetroBox Content. Value: none, fade. Default: fade. |
mbcontentDuration | integer | This param is used to set duration for mbcontentAnimEffect. Default: 400. |
EnableKeys | boolean | This param is used to enable/disable key functions. Value: true | false. |
ext | string | This param is used to set content file extension. Default Value: ‘php’. |
mbCustomBg | string | This param is used to set background for Custom Content box. Value: Use background classes in CSS file. |
mbCustomTypo | string | This param is used to set text font, color for Custom Content box. Value: CSS classes. |
mbCustomScrollbar | string | This param is used to set scrollbar color for Custom Content box. Value: CSS classes. |
[endedwords product=”MetroBox”]http://talk.sonhlab.com/room/metrobox-jquery-plugin[/endedwords]