FancyBox

FancyBox offers a nice and elegant way to add zooming functionality for images, html content and multi-media on your webpages.

FancyBox documentation

How to use?

Copy-paste the stylesheet <link> into your <head> to load the CSS.

              
                <link rel="stylesheet" href="../../assets/vendor/fancybox/jquery.fancybox.css">
              
            

Copy-paste the following <script> near the end of your pages under JS Implementing Plugins to enable it.

              
                <script src="../../assets/vendor/fancybox/jquery.fancybox.min.js"></script>
              
            

Copy-paste the following <script> near the end of your pages under JS Blueberry to enable it.

              
                <script src="../../assets/js/hs.fancybox.js"></script>
              
            

Copy-paste the init function under JS Plugins Init., before the closing </body> tag, to enable it.

              
                <script>
                  $(document).on('ready', function () {
                    // initialization of fancybox
                    $('.js-fancybox').each(function () {
                      var fancybox = $.HSCore.components.HSFancyBox.init($(this));
                    });
                  });
                </script>
              
            

Examples

Single image

                    
                      <div class="row">
                        <div class="col-sm-4 mb-3">
                          <a class="js-fancybox media-viewer" href="javascript:;"
                             data-hs-fancybox-options='{
                               "speed": 700
                             }'
                             data-src="..."
                             data-caption="Blueberry in frames - image #01">
                            <img class="img-fluid rounded" src="..." alt="Image Description">

                            <span class="media-viewer-container">
                              <span class="media-viewer-icon">
                                <i class="fas fa-plus"></i>
                              </span>
                            </span>
                          </a>
                        </div>

                        <div class="col-sm-4 mb-3">
                          <a class="js-fancybox media-viewer" href="javascript:;"
                             data-hs-fancybox-options='{
                               "speed": 700
                             }'
                             data-src="..."
                             data-caption="Blueberry in frames - image #02">
                            <img class="img-fluid rounded" src="..." alt="Image Description">

                            <span class="media-viewer-container">
                              <span class="media-viewer-icon">
                                <i class="fas fa-plus"></i>
                              </span>
                            </span>
                          </a>
                        </div>

                        <div class="col-sm-4 mb-3">
                          <a class="js-fancybox media-viewer" href="javascript:;"
                             data-hs-fancybox-options='{
                               "speed": 700
                             }'
                             data-src="..."
                             data-caption="Blueberry in frames - image #03">
                            <img class="img-fluid rounded" src="..." alt="Image Description">

                            <span class="media-viewer-container">
                              <span class="media-viewer-icon">
                                <i class="fas fa-plus"></i>
                              </span>
                            </span>
                          </a>
                        </div>
                      </div>
                    
                  

Fancybox types

Script uses the "src": "" attribute of the matched elements to obtain the location of the content and to figure out content type you want to display.

Open Video Ajax
                    
                      <!-- Fancybox Form -->
                      <button type="button" class="btn btn-sm btn-primary transition-3d-hover" data-toggle="modal" data-target="#fancyboxForm">
                        Open Form
                      </button>
                      <!-- End Fancybox Form -->

                      <!-- Form -->
                      <div class="modal fade" id="fancyboxForm" tabindex="-1" role="dialog" aria-labelledby="fancyboxFormlTitle" aria-hidden="true">
                        <div class="modal-dialog modal-sm" role="document">
                          <div class="modal-content">
                            <!-- Header -->
                            <div class="modal-header">
                              <h4 id="fancyboxFormlTitle" class="mb-0">Form modal</h4>
                              <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                                <svg aria-hidden="true" class="mb-0" width="14" height="14" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg">
                                  <path fill="currentColor" d="M11.5,9.5l5-5c0.2-0.2,0.2-0.6-0.1-0.9l-1-1c-0.3-0.3-0.7-0.3-0.9-0.1l-5,5l-5-5C4.3,2.3,3.9,2.4,3.6,2.6l-1,1 C2.4,3.9,2.3,4.3,2.5,4.5l5,5l-5,5c-0.2,0.2-0.2,0.6,0.1,0.9l1,1c0.3,0.3,0.7,0.3,0.9,0.1l5-5l5,5c0.2,0.2,0.6,0.2,0.9-0.1l1-1 c0.3-0.3,0.3-0.7,0.1-0.9L11.5,9.5z"/>
                                </svg>
                              </button>
                            </div>
                            <!-- End Header -->

                            <!-- Body -->
                            <div class="modal-body">
                              <form>
                                <div class="form-group">
                                  <label for="exampleInputEmail1">Email address</label>
                                  <input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter email">
                                  <small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
                                </div>
                                <div class="form-group">
                                  <label for="exampleInputPassword1">Password</label>
                                  <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
                                </div>
                                <div class="form-group form-check">
                                  <input type="checkbox" class="form-check-input" id="exampleCheck1">
                                  <label class="form-check-label" for="exampleCheck1">Check me out</label>
                                </div>
                                <button type="submit" class="btn btn-primary">Submit</button>
                              </form>
                            </div>
                          </div>
                        </div>
                      </div>
                      <!-- End Form -->

                      <!-- Video -->
                      <a class="js-fancybox btn btn-sm btn-primary transition-3d-hover" href="javascript:;"
                         data-hs-fancybox-options='{
                           "src": "//youtube.com/0qisGSwZym4",
                           "speed": 700
                         }'>
                        Open Video
                      </a>
                      <!-- End Video -->

                      <!-- Ajax -->
                      <a class="js-fancybox fancybox.iframe btn btn-sm btn-primary transition-3d-hover" href="javascript:;"
                         data-hs-fancybox-options='{
                           "src": "assets/ajax/fancybox/ajax.html",
                           "type": "ajax",
                           "speed": 700
                         }'>
                        Ajax
                      </a>
                      <!-- End Ajax -->
                    
                  

Multiple inner images

Multiple inner (hidden) images within slideshow.

                    
                      <div id="fancyboxGallery5">
                        <div class="row">
                          <div class="col-sm-4 mb-3">
                            <a class="js-fancybox media-viewer" href="javascript:;"
                               data-hs-fancybox-options='{
                                 "selector": "#fancyboxGallery5 .js-fancybox",
                                 "speed": 700
                               }'
                               data-src="..."
                               data-caption="Blueberry in frames - image #01">
                              <img class="img-fluid rounded" src="..." alt="Image Description">

                              <span class="media-viewer-container">
                                <span class="media-viewer-icon">
                                  <i class="fas fa-plus media-viewer-icon-inner"></i>
                                </span>
                              </span>
                            </a>
                          </div>

                          <div class="col-sm-4 mb-3">
                            <a class="js-fancybox media-viewer" href="javascript:;"
                               data-hs-fancybox-options='{
                                 "selector": "#fancyboxGallery5 .js-fancybox",
                                 "speed": 700
                               }'
                               data-src="..."
                               data-caption="Blueberry in frames - image #02">
                              <img class="img-fluid rounded" src="..." alt="Image Description">

                              <span class="media-viewer-container">
                                <span class="media-viewer-icon">
                                  <i class="fas fa-plus media-viewer-icon-inner"></i>
                                </span>
                              </span>
                            </a>
                          </div>

                          <div class="col-sm-4 mb-3">
                            <a class="js-fancybox media-viewer" href="javascript:;"
                               data-hs-fancybox-options='{
                                 "selector": "#fancyboxGallery5 .js-fancybox",
                                 "speed": 700
                               }'
                               data-src="..."
                               data-caption="Blueberry in frames - image #03">
                              <img class="img-fluid rounded" src="..." alt="Image Description">

                              <span class="media-viewer-container">
                                <span class="media-viewer-icon media-viewer-icon-active">
                                  <span class="media-viewer-icon-inner">+3</span>
                                </span>
                              </span>
                            </a>
                          </div>
                        </div>

                        <img class="js-fancybox d-none" alt="Image Description"
                             data-hs-fancybox-options='{
                               "selector": "#fancyboxGallery5 .js-fancybox",
                               "speed": 700
                             }'
                             data-src="assets/img/img24-lg.jpg"
                             data-caption="Blueberry in frames - image #04">
                        <img class="js-fancybox d-none" alt="Image Description"
                             data-hs-fancybox-options='{
                               "selector": "#fancyboxGallery5 .js-fancybox",
                               "speed": 700
                             }'
                             data-src="assets/img/img25-lg.jpg"
                             data-caption="Blueberry in frames - image #05">
                        <img class="js-fancybox d-none" alt="Image Description"
                             data-hs-fancybox-options='{
                               "selector": "#fancyboxGallery5 .js-fancybox",
                               "speed": 700
                             }'
                             data-src="assets/img/img26-lg.jpg"
                             data-caption="Blueberry in frames - image #06">
                      </div>
                    
                  

Multiple inner videos

Multiple inner (hidden) videos within slideshow.

                    
                      <div id="fancyboxGallery6">
                        <div class="row">
                          <div class="col-sm-4 mb-3">
                            <a class="js-fancybox media-viewer" href="javascript:;"
                               data-hs-fancybox-options='{
                                 "selector": "#fancyboxGallery6 .js-fancybox",
                                 "speed": 700,
                                 "buttons": ["fullScreen", "close"],
                                 "media": {
                                   "youtube": {
                                     "params": {
                                       "autoplay": 0
                                      }
                                    }
                                  }
                                 }'
                                 data-src="//youtube.com/0qisGSwZym4"
                                 data-caption="Blueberry in frames - video #01">
                              <img class="img-fluid rounded" src="..." alt="Image Description">

                              <span class="media-viewer-container">
                                <span class="media-viewer-icon">
                                  <span class="media-viewer-icon media-viewer-icon-active">
                                    <span class="media-viewer-icon-inner">+3</span>
                                  </span>
                                </span>
                              </span>
                            </a>
                          </div>
                        </div>

                        <iframe class="js-fancybox d-none"
                                data-hs-fancybox-options='{
                                 "selector": "#fancyboxGallery6 .js-fancybox",
                                 "speed": 700,
                                 "buttons": ["fullScreen", "close"],
                                 "media": {
                                   "vimeo": {
                                     "params": {
                                       "autoplay": 0
                                      }
                                    }
                                  }
                                 }'
                                 data-src="//vimeo.com/167434033"
                                 data-caption="Blueberry in frames - video #02"></iframe>
                      </div>
                    
                  

Multiple inner videos (Autoplay)

Multiple inner (autoplay) videos within slideshow.

                    
                      <div id="fancyboxGallery7">
                        <div class="row">
                          <div class="col-sm-4 mb-3">
                            <a class="js-fancybox media-viewer" href="javascript:;"
                               data-hs-fancybox-options='{
                                 "selector": "#fancyboxGallery7 .js-fancybox",
                                 "speed": 700,
                                 "buttons": ["fullScreen", "close"],
                                  "youtube": {
                                    "autoplay": 1
                                  }
                                 }'
                                 data-src="//youtube.com/0qisGSwZym4"
                                 data-caption="Blueberry in frames - video #01">
                              <img class="img-fluid rounded" src="..." alt="Image Description">

                              <span class="media-viewer-container">
                                <span class="media-viewer-icon">
                                  <span class="media-viewer-icon media-viewer-icon-active">
                                    <span class="media-viewer-icon-inner">+3</span>
                                  </span>
                                </span>
                              </span>
                            </a>
                          </div>
                        </div>

                        <iframe class="js-fancybox d-none"
                                data-hs-fancybox-options='{
                                 "selector": "#fancyboxGallery7 .js-fancybox",
                                 "speed": 700,
                                 "buttons": ["fullScreen", "close"],
                                  "vimeo": {
                                    "autoplay": 1
                                  }
                                 }'
                                 data-src="//vimeo.com/167434033"
                                 data-caption="Blueberry in frames - video #02"></iframe>
                      </div>
                    
                  

JavaScript behavior

Extend

By assigning a variable, you can call the standard methods of the plugin:

              
                <script>
                  $(document).on('ready', function () {
                    // initialization of fancybox
                    $('.js-fancybox').each(function () {
                      var fancybox = $.HSCore.components.HSFancyBox.init($(this), {
                        afterClose: function() {
                          console.log('Closed!!!');
                        }
                      });
                    });
                  });
                </script>
              
            

Attributes

By assigning a variable, you can call the standard methods of the plugin:

              
                data-hs-fancybox-options='{
                 ...

                 // Custom
                 "transitionEffectCustom": {
                   "onShow": "fadeIn",
                   "onHide": "fadeOut"
                 },
                 "overlayBg": "#ff0000",
                 "overlayBlurBg": true
              }' - array
              
            

Methods

Options can be passed via data attributes or JavaScript. For data attributes, append the option name to data-hs-fancybox-options='{}'. For more detailed or missing attributes/functions, see the official FancyBox documentation page.

Parameters Description

transitionEffectCustom.onShow

Reveal effect

transitionEffectCustom.onHide

Hide effect

overlayBg

Overlay color

overlayBlurBg

if true, then turns on the background blur effect
Logo

Developed by Nasim Mahmud's team | Blueberry Framework · Powered by Nimusoft

© Blueberry. 2020 Nimusoft. All rights reserved.