I have tried to replicate the problem you describe (using a small image, setting imageScaleMode to SCALE_DOWN and comparing the size of the displayed image in Irfanview and JuiceboxBuilder-Pro's live preview window) but I do not see the problem shown in your screenshots. Both images are displayed at the same size for me.

There are, however, some known issues with JuiceboxBuilder-Pro's live preview window being unable to display the gallery with 100% accuracy (due to the internal browser not fully supporting CSS 3).
Please see the Known Issues section of the JuiceboxBuilder-Pro User Guide.

I don't know if it will help but try viewing the gallery in a modern and up-to-date browser (Chrome, Edge, Firefox, Opera, Safari) rather than JuiceboxBuilder-Pro's live preview window to see if this makes a difference (and make sure that your browser's zoom functionality is set to 100%).

Incidentally, I've also just created a test gallery using your own gallery's 'config.xml' settings from your post above (in case there's some odd combination of settings which is causing the problem) but I still cannot replicate the problem myself so the issue could potentially lie somewhere within your own system.

Check that your Windows 'Settings -> Display -> Scale and layout' value is 100% (in case this is currently set to a higher values such as 125%).

What I'm seeing when I view your gallery is expected behavior but maybe an explanation of what I'm seeing will help to clarify some things.

The first image in your gallery has dimensions of 665 x 999 and your gallery currently sets imageScaleMode="NONE".

When I view your gallery in small browser window (shorter than the image's actual height), the image is displayed at its actual size (without any dynamic scaling), but because the browser window (and, therefore, the gallery's image area) is not large enough to accommodate the image in its entirety, it is cropped (equally at the top and bottom), as noted on the Config Options page ("NONE: No scaling. Large images are cropped to fit Image Area.").

When using imageScaleMode="NONE", the image will be seen in its entirety (without cropping) only when the users browser window (or, more specifically, the gallery's image area) is large enough to accommodate the entire image.

With a responsive gallery whose dimensions change depending on the shape and size of the user's browser viewport (such as your full page gallery), you really have no way of knowing the shape and size of your gallery (it is dependent on the user's device and browser window) so the only way to be sure that your gallery images will be seen in their entirety is to set imageScaleMode to either SCALE_DOWN (the default value) or SCALE.

SCALE_DOWN is the default value as this scales down large images to fit within the gallery's image area (if necessary) but does not scale up small images (as this will likely decrease their visual quality.

I hope this helps to explain what you are seeing.

Images in a Juicebox gallery are dynamically scaled according to the imageScaleMode configuration option (in the 'Main Image' section).
The default value for imageScaleMode (which is used when imageScaleMode is not explicitly defined in the gallery's 'config.xml' file) is SCALE_DOWN, whereby large images are scaled down (if necessary) to fit within the gallery's image area (whilst repsecting their aspect ratios and without cropping) but small images are not scaled up.
You can check out the list of all possible values for imageScaleMode (including short descriptions for each) in the Main Images section of the Config Options page.
Your gallery's 'config.xml' file does not seem to include a value for imageScaleMode (at least not in the portion you included in your post above) so the default value of SCALE_DOWN will be used.

Is it possible to show them at the original size ?

If you do not want Juicebox to scale your gallery images at all, then set imageScaleMode to NONE. (This will work best with a gallery of fixed size where the gallery's dimensions are known and large enough to accommodate your images without them needing to be scaled up or down to fit within the gallery's image area.)

579

(7 replies, posted in Juicebox-Pro Support)

Now all i need to do is ask if we can have the first image in the slideshow set as the icon!

Unfortunately, as I'm sure you're already aware, there is no easy way to do this.
What you are doing is probably as automated as possible (using JuiceboxBuilder-Pro).
(With the Juicebox plugin for Lightroom, you could quite easily point towards the first image in the gallery but there would be no way to process the image to create multiple different sizes so you'd need to rely on the browser's algorithms to dynamically resize the image as and when required.)

Thanks for the help - it worked really well.

You're welcome!

I'm sorry that you've not been able to resolve your problem.
It does seem to be some kind of server setup issue.
If I view the source of the gallery's web page in a browser and click on the 'src' attribute's value for any <script> tag, I should be able to see the contents of the file but, for every JavaScript file I've checked, the server just displays the site's error 404 (file not found) page.
Likewise, I cannot view the gallery's dynamically-generated XML data in isolation either. The same error 404 is returned. (This is in a desktop browser.)
It looks like the server might have some kind of hotlink protection for JavaScript and XML files (and possibly other file types) which could certainly be preventing the gallery from being displayed. If a browser cannot access a gallery-specific file directly, then Juicebox will not be able to see it either.
A change of web host might be the best course of action if the current host is unwilling or unable to help.

581

(7 replies, posted in Juicebox-Pro Support)

You could place your icon into the 'template/jbcore' folder, (JuiceboxBuilder-Pro copies the entire 'template/jbcore' folder across to the gallery folder), e.g.:
Mac: /Applications/JuiceboxBuilder-Pro.app/Contents/Resources/template/jbcore/icon.png
Windows: C:\Program Files (x86)\JuiceboxBuilder-Pro\template\jbcore\icon.png

Your <link> tag would then look something like this (with a relative path to the icon file within the gallery's 'jbcore' folder):

<link rel="apple-touch-icon" href="jbcore/icon.png"/>

Use a similar path for any other <link> tags you use.

582

(2 replies, posted in Tricks and Tips)

Just a couple of quick clarifications and expanded explanations:

None of which are in the Config Guide.

All the configuration options which are used by Juicebox when the gallery is displayed in a browser (i.e. those options which make a difference to the layout and functionality of a gallery) are included in the Config Options page.
JuiceboxBuilder-Pro does write some extra settings to the gallery's 'config.xml' file which are not included in the Config Options page.
These settings mostly refer to image generation and are included so that if the gallery is opened and edited by JuiceboxBuilder-Pro in the future, the same image settings (e.g. dimensions and quality) will be used.

Side Note: config.xml and index.html are really a pair of files to be considered together. JbB changes both files depending on settings selected.

All configuration options (required by both Juicebox and JuiceboxBuilder-Pro) and image data are stored in the gallery's 'config.xml' file.
The 'index.html' file contains just the gallery's embedding code and the SEO Content (if the 'Add SEO Content' checkbox is selected in JuiceboxBuilder-Pro's 'Customize -> Sharing' section).
The SEO Content contains the image paths, titles and captions.
The only configuration options that are stored in the embedding code are the Embed Options, backgroundColor, galleryWidth and galleryHeight.
JuiceboxBuilder-Pro writes values for these options to the 'config.xml' file (again options which are not used by Juicebox when the gallery is displayed) so that the application's interface can be populated with the correct values when the gallery is opened for editing.
(JuiceboxBuilder-Pro reads only the gallery's 'config.xml' file (and not the 'index.html' file) on opening a gallery so all data required to recreate a gallery is stored in the 'config.xml' file.)

Now, there will always be a setting for 'show open button' in your config.xml.

As you correctly mention, default values do not need to be written to the 'config.xml' file.
If a particular configuration option is not present in the 'config.xml' file, then Juicebox will use the option's default value.
If you reset an option to its default value using its own input field (e.g. checkbox or combobox), then the option will remain in the 'config.xml' file (with the correct default value).
However, if you reset an option's value using the 'cross-in-a-circle' icon to the right of the option (in JuiceboxBuilder-Pro's interface), then the option will be removed from the 'config.xml' file.
Essentially, if a value is set by the user (even to a default value), then the option will be present in the 'config.xml' file.

I don't know what performance that might make on slower, low powered devices.

Having all configuration options listed in a 'config.xml' file really won't make any noticeable difference in a real-world scenario and is nothing to worry about.

583

(1 replies, posted in Tricks and Tips)

Stickied! Thanks!

To quickly and easily copy configuration options from one gallery to another, you can create a preset (noted in the JuiceboxBuilder User Guide) from the original gallery and apply the preset to a new gallery.

(1) Open the original gallery in JuiceboxBuilder.
(2) Save the gallery's configuration options as a preset file (select 'Presets -> Save Preset...' from the drop-down menu at the top of the application).
(3) Open or create a new gallery in JuiceboxBuilder.
(4) Load the preset file ( 'Presets -> Load Preset...' ) to apply the configuration options stored in the preset file to the gallery.
(5) Save the gallery on the 'Publish' tab.

Those who are confident manually editing files can simply copy and paste the configuration options from one gallery's 'config.xml' file to another. (Configuration options are stored as attributes to the opening <juiceboxgallery> tag.)

585

(0 replies, posted in Tricks and Tips)

The Juicebox Plugin for Lightroom does not support a traditional 'preset' file (as used by JuiceboxBuilder) but you can create a 'template' in Lightroom which can be loaded at any time to apply a certain combination of configuration options to a gallery. (This will save you from having to set each configuration option individually.)

With the settings as you want to save them (in the Lightroom plugin's interface), click the + sign to the right of the text 'Template Browser' (in the left panel of the 'Web' section) and select a name for your template.
At any time in the future, if you want to apply these settings to a new gallery, just expand the 'Template Browser' control panel, scroll down to the 'User Templates' section and select your template.

Examining the config.xml and index.html created in the past does not help because the tags in those files don't match the names of the settings in the LR UI.

The configuration options (stored as attributes to the opening <juiceboxgallery> tag in the gallery's 'config.xml' file) should match up with their corresponding settings in the Lightroom interface.
For example showAutoPlayButton (in the 'config.xml' file) is listed as "Show Auto Play Button" in the Lightroom plugin's 'Appearance -> Button Bar' section.
If you're not sure which section a certain configuration options is listed under, then search for the option name on the Config Options page and check which section header it comes under (and then scroll down the 'Appearance' section in the Lightroom plugin's interface until you find section header that you are looking for).

In Lightroom, you can save a set of Juicebox configuration options (like a JuiceboxBuilder preset) as a template.
With the settings as you want to save them, click the + sign to the right of the text 'Template Browser' (in the left panel of the 'Web' section) and select a name for your template.
At any time in the future, if you want to apply these settings to a gallery, expand the 'Template Browser' control panel, scroll down to the 'User Templates' section and select your template.

Alternatively, for a quick and easy way to copy configuration options from one gallery to another, you can just copy and paste the options (essentially the entire opening <juiceboxgallery> tag) from one gallery's 'config.xml' file to another (in a plain text editor).

Another thing you could do is open a gallery (whose options you'd like to copy) in JuiceboxBuilder-Pro.
Now, go to 'Presets -> Save Preset...' from the drop-down menu at the top (to save the gallery's configuration options as a preset file).
You can now open any other gallery in JuiceboxBuilder-Pro and load the preset file (Presets -> Load Preset...') to apply all the configuration options stored in the preset file to the gallery. (Then, just re-save the gallery on the 'Publish' tab.)

I hope this helps.

Thanks!

588

(0 replies, posted in Tricks and Tips)

With Juicebox, you are able to create as many individual galleries as you like but if you want to link them together, you would normally need to do so manually following the online examples in the Embedding Multiple Galleries support section.

Otherwise, for an automated solution, you could use Showkase (a PHP web application) to create a complete portfolio website online, integrating as many Juicebox galleries as you like (all indexed on gallery index pages) without the need for any manual coding at all.

However, for a quick and easy way to link together a few Juicebox galleries, you might like to try this method.

(1) Create your Juicebox galleries as normal (with JuiceboxBuilder, for example) and name the gallery folders 'gallery1', 'gallery2', etc. (This naming convention is important for this method to work.)
(2) Use the code below to create an HTML file, put the file in the same directory as the gallery folders and open the HTML file in a browser.

That's it. The file will initially load the first gallery ('gallery1') and will provide links to all Juicebox galleries.
You can edit the HTML code (to change the page header, colors, etc.) in a plain text editor if you like.

This is not intended to be anything like a replacement for Showkase (which is a fully-featured website creation tool with full support for creating Juicebox-Pro galleries within its interface).
It is just a quick and easy way to display a few already-made Juicebox galleries.

I hope it helps someone!

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" id="jb-viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0" />
        <style type="text/css">
            html, body {
                height: 100%;
                overflow: hidden;
            }
            body {
                background-color: #222222;
                margin: 0px;
            }
            #header {
                background-color: #222222;
                color: #666666;
                font-family: sans-serif;
                font-size: 20px;
                padding: 10px 0px;
                text-align: center;
                width: 100%;
            }
            #page {
                font-size: 30px;
            }
            #menu {
                padding: 10px 40px 0px 40px;
            }
            #footer {
                background-color: #222222;
                bottom: 0px;
                color: #666666;
                font-family: sans-serif;
                font-size: 20px;
                left: 0px;
                position: relative;
                text-align: center;
                width: 100%;
            }
            #wrap {
                margin: 0 auto;
                width: 80%;
            }
            .gallery {
                cursor: pointer;
            }
            .gallery.selected {
                text-decoration: underline;
            }
            span.gallery:hover {
                color: #888888;
            }
        </style>
        <script type="text/javascript" src="gallery1/jbcore/juicebox.js"></script>
        <title></title>
    </head>
    <body>
        <div id="header">
            <div id="page"></div>
            <div id="menu"></div>
        </div>
        <div id="wrap">
            <div id="juicebox-container"></div>
        </div>
        <div id="footer">
            <div id="description"></div>
        </div>
        <script type="text/javascript">

            // Enter Page Title here
            var page = "Multiple Galleries";

            // Initialize Juicebox object variable name
            var jb;

            // Function to process all galleries
            function doProcess(counter, gallery) {
                $.get('gallery' + counter + '/config.xml', function(data) {

                    // Build gallery folder name
                    var base = 'gallery' + counter;

                    // Create space between links
                    if (counter > 1) {
                        $('#menu').append($('<span />').html('&nbsp;&nbsp;&nbsp;'));
                    }

                    // Fetch Gallery Title from gallery XML file
                    var title = $.trim($(data).find('juiceboxgallery').attr('galleryTitle')) || 'Untitled';

                    // Fetch Gallery Description from gallery XML file
                    var description = $.trim($(data).find('juiceboxgallery').attr('galleryDescription')) || '';

                    // Add link to Document Object Model
                    $('#menu').append($('<span />').attr('id', base).addClass('gallery').data('description', description).html(title));

                    // Initially load gallery
                    if (counter === gallery) {
                        loadGallery(base, description);
                    }
                }).done(function() {

                    // Process next gallery
                    doProcess(++counter, gallery);
                }).fail(function() {

                    // Show header and footer when all galleries have been processed
                    $('#header, #footer').css('visibility', 'visible');

                    // Layout page and resize gallery
                    doLayout();
                });
            }

            // Function to layout page and resize gallery
            function doLayout() {
                var windowHeight = parseInt(window.innerHeight ? window.innerHeight : $(window).height(), 10);
                var headerHeight = parseInt($('#header').outerHeight(true), 10);
                var footerHeight = parseInt($('#footer').outerHeight(true), 10);
                var galleryHeight = windowHeight - headerHeight - footerHeight;
                $('#wrap').height(galleryHeight);
                if (jb) {
                    var galleryWidth = parseInt($('#wrap').innerWidth(), 10);
                    window.setTimeout(function() {
                        jb.setGallerySize(galleryWidth, galleryHeight);
                    }, 500);
                }
            }

            // Function to load gallery, underline selected link and show Gallery Description in page footer
            function loadGallery(base, description) {

                // Load gallery
                jb = new juicebox({
                    backgroundColor: "#222222",
                    baseUrl: base + "/",
                    containerId: "juicebox-container",
                    galleryHeight: "100%",
                    galleryWidth: "100%"
                });

                // Style selected link
                $('.gallery').removeClass('selected');
                $('#' + base).addClass('selected');

                // Show Gallery Description in page footer
                $('#description').css('padding', description ? '10px 40px' : '0px').html(description);
            }

            // Show Page Title in browser tab
            document.title = page;

            // Check if jQuery is loaded
            if (typeof jQuery === 'undefined') {

                // Show Page Title in page header
                document.getElementById('page').innerHTML = page;

                // Show message if no galleries found
                document.getElementById('menu').innerHTML = '<span>No galleries found.</span>';
            } else {

                // Run following when Document Object Model is complete
                $(document).ready(function() {

                    // Register resize handler to run doLayout function when browser window is resized
                    $(window).resize(doLayout);

                    // Register click handler to run loadGallery and doLayout functions when link is clicked
                    $('#menu').on('click', '.gallery', function() {
                        var base = $(this).attr('id');
                        var description = $(this).data('description');
                        loadGallery(base, description);
                        doLayout();
                    });

                    // Show Page Title in page header
                    $('#page').html(page);

                    // Hide header and footer until all galleries have been processed
                    $('#header, #footer').css('visibility', 'hidden');

                    // Fetch gallery id from query string
                    var gallery = 1;
                    var term = 'gallery';
                    if (window.location.search) {
                        var queryArray = {};
                        var queryComponent;
                        var queryString = unescape(window.location.search);
                        var re = new RegExp('([^?=&]+)(?:=([^&]*))?', 'g');
                        while (queryComponent = re.exec(queryString)) {
                            queryArray[queryComponent[1]] = queryComponent[2];
                        }
                        var queryInteger = parseInt(queryArray[term], 10);
                        if (!isNaN(queryInteger)) {
                            gallery = Math.abs(queryInteger);
                        }
                    }

                    // Process all galleries
                    doProcess(1, gallery);
                });
            }
        </script>
    </body>
</html>

You're welcome!
I've also created a new forum for your 'Tricks and Tips' thread here.
I figured it might be difficult to find a particular tip if they were all in a single thread so I've split the thread into individual tips (so that each tip can have its own conversation and replies), each with its own topic heading.

We've now changed the order of options in the Config Options page so that it matches the order in JuiceboxBuilder-Pro.
It should hopefully be a little easier to find the definition of any specific option now.

That's right, the 'config.xml' file can be opened (and edited) in any plain text editor.

Just to avoid any confusion, captions are included in the 'index.html' file only if the 'Add SEO Content' checkbox is selected in JuiceboxBuilder-Pro's 'Customize -> Sharing' section. The SEO Content is included primarily for SEO purposes (please see here for further details) but it also has the added bonus of allowing the images (and captions) to be seen in browsers which have JavaScript disabled.

Here's a tip which might be useful for users with many galleries.
It is possible for multiple galleries to share a single 'jbcore' folder (rather than having an individual 'jbcore' folder for each and every gallery).
In doing so, it would be possible to upgrade every gallery on your website at once (for example, when a new version of Juicebox is released) by just replacing a single 'jbcore' folder (rather then replacing many of them in different locations).

Instructions can be found here: https://www.juicebox.net/support/embedd … ore-folder

Admittedly, if you already have multiple galleries on your website, you'd need to modify the paths to the shared 'juicebox.js' file in each gallery's embedding code but for someone starting out and planning to have many galleries, it might be worth considering.

If anyone wants to extend the width of their images (for a wider caption width when setting captionPosition="BELOW_IMAGE"), then you might like to try using IrfanView (a free image viewer/editor for Windows users) to do so. There's a fairy easy way to do this quickly and easily (without having to create a background image and then copy, paste and center the actual image on top of it).
In IrfanView, open your image and select 'Image -> Change canvas size...'. You can then extend the canvas of the image to the left, right, top and bottom (all independently of each other) by however many pixels you like and you can choose whatever color you want as the canvas (background).
You could even do this for many images at once as a batch process via 'File -> Batch Conversion/Rename... -> Use advanced options (checkbox) -> Advanced (button) -> Canvas size (checkbox) -> Settings (button)'.

Otherwise, some users might just like to use captionPosition="BOTTOM" or captionPosition="BELOW_THUMBS" for a wider caption width than captionPosition="BELOW_IMAGE" may provide (depending on the layout of the layout of the gallery).

Collecting ideas for the requests thread,

I am not the author of Juicebox (so I really don't know which ideas might be considered for future versions) but I look forward to reading your suggestions nonetheless!

Maybe other users would have some ideas... Feel free to chime in, Juicebox users!
Ultimately, everyone may have a different opinion but it would be nice to hear from some Juicebox users out there who already have large galleries.

One thing I would say though, is try to keep your galleries smaller rather than larger. No matter how you design your gallery's layout, visitors to your website may end up with click-fatigue (or lose patience with an AutoPlay gallery) if there are too many images in your gallery (although what constitutes as 'too many' is up for debate).
Maybe you could split up your gallery into a couple of smaller galleries. I try to keep my galleries small (under 100 images) if possible.

596

(7 replies, posted in Juicebox-Pro Support)

A Juicebox-Pro 'Preset' handles only configuration options.
However, you could modify the template file that JuiceboxBuilder-Pro uses to generate the gallery's 'index.html' page and add your custom <link> tag to it. Try the following:

Open the following file in a plain text editor:
Mac: /Applications/JuiceboxBuilder-Pro.app/Contents/Resources/template/index.html
Windows: C:\Program Files (x86)\JuiceboxBuilder-Pro\template\index.html

Now, add your custom <link> tag somewhere between the <head> and </head> tags.
Just use the image's filename (essentially a relative path to the image in the gallery folder) in the <link> tag.

Each time a new gallery is created by JuiceboxBuilder-Pro, the gallery's index.html' file will include your custom code.

All you then need to do is copy the image into the gallery folder (alongside the 'index.html' file).

I hope this helps.

No problem! Sorry if the order of options was a little confusing!

When thumbnails out number 'Max Thumb Columns', is there a setting to advance the thumbnails one by one instead of set by set?

No. Unfortunately, the thumbnail arrows always navigate through the thumbnails one page at a time (rather than one thumbnail at a time).
However, if you like, you could put forward your suggestion for a future version by posting it in the Feature Requests forum thread.
This keeps all the ideas together and ensures that they are not overlooked by the developers.
I do not know the likelihood of any suggestions being implemented in future versions but this is certainly the best place for all ideas.

Like there are more options under 'Main Image' than are explained on the Config Page  :-)

There are 20 configuration options available in JuiceboxBuilder-Pro's 'Customize -> Main Image' section and all 20 are listed in the Main Image section of the Config Options page.
If you find that any configuration options are missing from the Config Options page, then please let me know what they are so that I can add them to the page. Thank you.

JuiceBox is a great product, worth every penny.

I'm glad you're getting on well with Juicebox!

599

(1 replies, posted in Juicebox-Pro Support)

It sounds like something may have happened during upload to break your galleries.
Check the 'Transfer type' (ASCII vs Binary) in your FTP program. (I use Filezilla and 'Auto' usually handles things fine.)
If your gallery files were uploaded as ASCII, then the JavaScript file might have ben broken during transfer.
Try reuploading everything as Binary to see if this helps.

Otherwise, please post a link to one of your galleries which does not work so that I can take a look at the problem for myself and hopefully help further.
If you do not want to post a link publicly, then please email me. (My email address can be found next to my username here in the forum, to the left of this post.)
Thank you.

It's an odd one, indeed.
If there was a problem with the certificate or digital signature, then I would have expected a more widespread problem with many reports of failure (rather than what seems to be a couple of isolated cases).
At least winding the clock back (temporarily whilst installing the application) seems to be a suitable workaround.
In any case, I'm glad you've got it working. Thank you for letting me know. It's most appreciated.