Click to zoom / enlarge images

You can add the fancybox script to your theme to allow readers to click and expand images to their full-size versions in a lightbox. 

Click to zoom / enlarge this image
Is it free? For you, probably. KnowledgeOwl has purchased an Extended Commercial license for fancybox. As long as you are using it within your KnowledgeOwl theme and are not developing your own commercial products with fancybox, you do not need to purchase your own license. To purchase your own, visit fancybox licenses.

Installation method 1: For using fancybox in individual articles only

  1. Go to Library > Snippets.
  2. Click the + Create new snippet button to begin creating a new snippet.
  3. Give it a name, such as "fancybox script".
  4. Give it a Snippet Description, like "Use this snippet to add the fancybox hover/click to zoom treatment to an article's images."
  5. Use the dropdown next to Snippet Content to toggle to the Code Editor.
  6. Copy the code below and paste it into the Code Editor:paste the following code in, and click on 'Create':
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.6/jquery.fancybox.min.css" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.6/jquery.fancybox.min.js"></script>
    <script>
       $(function(){
           var addToAll = true;
           var gallery = true;
           var titlePosition = 'inside';
           $(addToAll ? '.hg-article-body img' : '.hg-article-body img.fancybox').each(function(){
             if($(this).parent("a").attr("href") === undefined){
               var $this = $(this);
               var title = $this.next('figcaption').text();
               var src = $this.attr('data-big') || $this.attr('src');
               var a = $('<a href="#" data-fancybox data-caption="'+title+'"></a>').attr('href', src);
               $this.wrap(a);
             }
           });
           if (gallery)
               $('a[data-fancybox]').attr('data-fancybox', 'group');
           $('a[data-fancybox]').fancybox({
               titlePosition: titlePosition
           });
       });
    </script>
    
  7. Check the box to Hide from PDFs.
  8. Click the Create button to finish creating your snippet.

With your snippet created, you can add fancybox into individual articles by using the Insert Snippet option in the Article Editor and searching for "fancybox". See Using snippets if you're unfamiliar with working with snippets!

Installation method 2: For using fancybox in all articles

To add fancybox to all articles automatically:

  1. Go to Settings > Style.
  2. Below the preview pane, be sure Custom HTML is selected.
  3. In the Custom HTML dropdown, select Article.
  4. Copy the script below and paste it into the very bottom of the article HTML editor.
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.6/jquery.fancybox.min.css" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/3.5.6/jquery.fancybox.min.js"></script>
    <script>
       $(function(){
           var addToAll = true;
           var gallery = true;
           var titlePosition = 'inside';
           $(addToAll ? '.hg-article-body img' : '.hg-article-body img.fancybox').each(function(){
             if($(this).parent("a").attr("href") === undefined){
               var $this = $(this);
               var title = $this.next('figcaption').text();
               var src = $this.attr('data-big') || $this.attr('src');
               var a = $('<a href="#" data-fancybox data-caption="'+title+'"></a>').attr('href', src);
               $this.wrap(a);
             }
           });
           if (gallery)
               $('a[data-fancybox]').attr('data-fancybox', 'group');
           $('a[data-fancybox]').fancybox({
               titlePosition: titlePosition
           });
       });
    </script>
    
  5. Be sure to Save your changes.

Since this is added to the article HTML template, it will automatically be applied to all articles, no messing with snippets.

Optional drop shadow and hover effect

Hover and click on the images below to see fancybox in action:

Add fancybox to your Custom Head 
Add fancybox JS to your Custom HTML > Body 

To add the drop shadow and hover effect to your images like you see here, add the following code as well to the new snippet you created if you used installation method 1.

<style type="text/css">
    a[data-fancybox] img {
        border: none;
        box-shadow: 0 1px 7px rgba(0,0,0,0.6);
        -o-transform: scale(1,1); -ms-transform: scale(1,1); -moz-transform: scale(1,1); -webkit-transform: scale(1,1); transform: scale(1,1); -o-transition: all 0.2s ease-in-out; -ms-transition: all 0.2s ease-in-out; -moz-transition: all 0.2s ease-in-out; -webkit-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out;
    } 
    a[data-fancybox]:hover img {
        position: relative; z-index: 999; -o-transform: scale(1.03,1.03); -ms-transform: scale(1.03,1.03); -moz-transform: scale(1.03,1.03); -webkit-transform: scale(1.03,1.03); transform: scale(1.03,1.03);
    }
</style>

If you chose installation method 2, copy & paste the following code at the bottom of the Settings > Style > Custom CSS section of your knowledge base:

a[data-fancybox] img {
        border: none;
        box-shadow: 0 1px 7px rgba(0,0,0,0.6);
        -o-transform: scale(1,1); -ms-transform: scale(1,1); -moz-transform: scale(1,1); -webkit-transform: scale(1,1); transform: scale(1,1); -o-transition: all 0.2s ease-in-out; -ms-transition: all 0.2s ease-in-out; -moz-transition: all 0.2s ease-in-out; -webkit-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out;
    } 
a[data-fancybox]:hover img {
        position: relative; z-index: 999; -o-transform: scale(1.03,1.03); -ms-transform: scale(1.03,1.03); -moz-transform: scale(1.03,1.03); -webkit-transform: scale(1.03,1.03); transform: scale(1.03,1.03);
    }

Add magnifying glass on hover

To change the cursor to a magnifying glass on hover, add the following code to your snippet:

<style>
.hg-article-body a[data-fancybox] img:hover {
  cursor: url('https://dyzz9obi78pm5.cloudfront.net/app/image/id/629e18fd5078ca790f415b03/n/search-solid-2.png'), auto;
}
</style>

You can swap out the image by replacing the URL in row 3.


For more information on how you can use fancybox, check out their demos and documentation.

Feel free to get in touch with our Support team if you need help installing fancybox in your knowledge base!