1,576

(3 replies, posted in Juicebox-Pro Support)

I'd really recommend that you position the Button Bar using the available Button Bar configuration options (buttonBarPosition and buttonBarHAlign).
If you try to reposition the Button Bar manually using CSS, Juicebox will not know of this modification and will expect the Button Bar to be in a different position. This might have unforeseen knock-on effects, for example if the browser window is narrowed and the Button Bar needs to wrap onto multiple lines. (This might not apply to your own gallery with only one button on the Button Bar but it could be a concern for anyone else reading this thread with a larger Button Bar.)

Having said that, you are certainly free to try repositioning the Button Bar using CSS (but please be aware that such modifications are not officially supported).
You should be able to find out which classes and/or ids you might need to apply your custom CSS rules to (and what rules are currently being applied to specific elements) using your browser's developer tools (F12).

Try something like the following:

.jb-classifier-link-wrapper.jb-classifier-detail-area.jb-classifier-layer {
    margin-top: -10px !important;
    margin-right: -24px !important;
}

1,577

(3 replies, posted in Juicebox-Pro Support)

For reference, the Search Engine Optimization support section can be found here.

When you create a gallery with JuiceboxBuilder-Pro, select the 'Add SEO Content' checkbox in the 'Customize -> Sharing' section and SEO code will be generated. The SEO code will be included in the gallery's 'index.html' file (which can be used to view the gallery on a page of its own) but it will also be presented in the 'Get Embed Code' window on JuiceboxBuilder-Pro's 'Publish' tab. As long as you follow the regular embedding instructions here you can just copy and paste the entire embedding code into your web page and all should be fine.

However, things are complicated slightly with your own setup. Not only do you use a baseUrl (which would mean that you would need to modify the paths to the images in the SEO code as JuiceboxBuilder-Pro has no knowledge of your custom gallery structure when generating the SEO code) but you also switch between multiple galleries on the same page. You would probably need to merge the SEO code from your multiple galleries (making sure that the paths to the images are correct for each gallery) and manually insert it into your web page (inside the 'juicebox-container' <div> within <noscript> ... </noscript> tags, which is how JuiceboxBuilder-Pro presents the SEO code).

Try creating a sample gallery with JuiceboxBuilder-Pro (with the 'Add SEO Content' checkbox selected) and check the 'Get Embed Code' window on the 'Publish' tab to see the format that JuiceboxBuilder-Pro uses for the SEO code if you plan to implement it manually for your own web page.

Placing the SEO code (<img> tags) inside <noscript> ... </noscript> tags is not hiding the images (so Google should not penalize your site for this). It is simply telling the browser that this is what should be displayed if JavaScript is disabled. Not only is this a method of adding the SEO code to your web page, it also ensures that your gallery images will still be seen even if JavaScript is disabled in the browser.

1,578

(3 replies, posted in Juicebox-Pro Support)

You're welcome!

1,579

(3 replies, posted in Juicebox-Pro Support)

You're welcome!

1,580

(1 replies, posted in Juicebox-Pro Support)

(1) Upload all your images (the gallery images and the image you'd like to use as the representing image on the gallery index page) on the gallery page's 'Upload' tab.
(2) On the 'Images' tab, select the image you'd like to use on the gallery index page (via the corresponding radio button in the 'Index' column).
(3) On the ''Customize' tab, scroll down to the 'Override Site Options' section and deselect the 'Show index image' checkbox.
(4) Now click 'Save' and 'Publish'.

1,581

(3 replies, posted in Juicebox-Pro Support)

Drag and drop the gallery page name onto the gallery index page name.
For example, click and hold the text 'Land', drag it onto the text 'Galleries' (make sure the small arrow is directly to the left of the text 'Galleries', not above or below it) and release the mouse click. (Then click 'Save' and 'Publish'.)

1,582

(3 replies, posted in Juicebox-Pro Support)

From your screenshot, it looks like you are referring to the Kosel theme in Showkase.

You can hide individual pages from the navigation menu by dragging and dropping the page name onto 'Hidden pages' on the 'Pages' tab (and then clicking 'Save' and 'Publish'). The page's URL will remain the same but there will no longer be an entry for it in the navigation menu.

There is no way to disable the navigation menu completely from within the Showkase interface (other than dragging and dropping all page named onto 'Hidden pages') but you could hide the navigation menu using CSS if you like.
Try adding something like the following to your '/showkase/_themes/kosel/css/custom.css' file:

#nav {
    display: none;
}

If you want to hide the navigation menu only on a certain page, then you can check the page's id (from the 'class' attribute in the page's <body> tag) and use something like the following in your '/showkase/_themes/kosel/css/custom.css' file:

.page-2 #nav {
    display: none;
}

More information about using custom CSS within Showkase can be found in the Adding Custom Styles and Fonts support section.

No problem! I'm glad my suggestion worked. Thanks for letting me know.

I'm glad you've been able to find a suitable workaround. Thank you for letting me know.
With regard to you Button Bar issue, this looks like it might be caused by a known bug where the Button Bar does not always wrap correctly when there is insufficient space for all the buttons. The developers are aware of this issue and it should hopefully be fixed in the next version. In the meantime, it might help to change the size of the Button Bar icons via buttonBarIconSize (in JuiceboxBuilder-Pro's 'Customize -> Button Bar' section). The default value is 20 so you could try using a slightly smaller or larger value. Hopefully this will help.

1,585

(3 replies, posted in Juicebox-Lite Support)

I've glad that you've been able to resolve your problem.
Thank you very much for letting me know.

Paths in WordPress pages are often absolute but they are usually generated dynamically when the page is displayed.
As you are aware, any hard-coded absolute paths will certainly cause problems if a WordPress site is moved.

I'm pretty sure this is a Cross-Origin issue. I've been able to replicate the problem myself in a test scenario but, unfortunately, I've been unable to find a good solution.

Normally, your gallery is hosted on gallery.charleychau.com but is displayed on charleychau.com.
However, when the gallery is expanded from the Splash Page, it is displayed via the 'full.html' page within the 'jbcore' folder on gallery.charleychau.com (swapping the domain on which the gallery is being displayed). To complicate matters, Juicebox passes configuration options to the 'full.html' page via a session cookie.

I've tried adding the following line to the .htaccess in my test scenario file to add cookie support to the CORS solution.

Header set Access-Control-Allow-Credentials true

... and I've tried adding the full .htaccess file:

Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Credentials true

... to both domains (in theory to allow access in both directions) but it does not work.

The only thing I've been able to think of would be to set expandInNewPage="FALSE" to prevent the gallery from being displayed via the 'full.html' page when it is expanded from the Splash Page. The gallery will then be expanded on top of the embedding page (still on the charleychau.com domain) which may cause a scaling problem on iOS devices. (Expanding the gallery on a page of its own is designed to avoid this potential scaling issue.) It's certainly worth a try, though.
Alternatively, you could keep expandInNewPage="AUTO" and lock the viewport of your gallery's web page.
Please see the Expand Gallery Behavior support section for details.

I hope this is a suitable workaround for your problem (as it seems to work well in my test scenario).

1,587

(3 replies, posted in Juicebox-Lite Support)

It's a Wordpress site but I can find no plugin that looks like Juicebox.

The Juicebox plugin for WordPress is called WP-Juicebox and, if installed, it will be listed on the 'Plugins' page in the WordPress admin section.

There is a Portfolio section for the theme so perhaps the juicebox is somehow built into the theme?

As far as I am aware, there are no official themes which contain Juicebox so if Juicebox is somehow built into a theme, someone has been very creative!

This leads me to think perhaps there is a hard-coded "www" somewhere in a setup file. However I can find no setup file. I see talk on this forum of an "embed" file but at this point I have no idea where to find that file.

If WP-Juicebox is not installed, then it is likely that individual Juicebox galleries have been embedded manually into pages or posts.
Each gallery consists of a 'jbcore' folder (containing the Juicebox core files), a 'config.xml' file (containing the gallery's image data and configuration options) and 'images' and 'thumbs' folders. This should give you something to search for on your server.
In addition to the files required for a Juicebox gallery, there will be some embedding code (in the body of the page or post containing the gallery) which will look something like this:

<!--START JUICEBOX EMBED-->
<script src="my_gallery_folder/jbcore/juicebox.js"></script>
<script>
    new juicebox({
        baseUrl: 'my_gallery_folder/',
        configUrl: 'config.xml',
        containerId: 'juicebox-container',
        galleryWidth: '800',
        galleryHeight: '600',
        backgroundColor: '#222222'
    });
</script>
<div id="juicebox-container"></div>
<!--END JUICEBOX EMBED-->

If you find a Juicebox gallery that does not work, then it is certainly possible that the paths in the embedding code are pointing to the wrong places.
For each web page containing a gallery (or galleries), there will always be a path pointing towards the 'juicebox.js' file (inside the 'jbcore' folder).
Depending on the structure of the gallery, there may (or may not) be additional paths in the embedding code as follows:
(1) A configUrl path pointing towards a specific configuration file.
(2) A baseUrl path, pointing towards a specific gallery folder (please see here for details).

If there is any way for you to let me see the site (or at least a dysfunctional Juicebox gallery page), I should hopefully be able to help you further. Thank you.

1,588

(4 replies, posted in Juicebox-Pro Support)

Thank you for providing the screenshot.

Regarding point 3 that you made - we are using an Adobe script on the site that applies a specific font family on the site. Is this an example of a global CSS rule?

It could be, depending on how the CSS rule is applied. If it applied to only certain ids or classes, then things should be OK but if it is applied to all elements on the web page (being applied to * or the html or body tags), then you might run into problems with the gallery inheriting the font, although I can't actually override the Juicebox font myself by doing something similar (see below).

Also, we are testing the gallery on a staging server and not one that is public. Could this be affecting the gallery?

This is likely to be a factor only if there is a problem with the font MIME types on your staging server.

I am not sure if these are part of the font files that are uploaded with the juicebox module or not.

The icons in the screenshot are not part of the Juicebox font and I do not know where they are coming from. I've never seen the Juicebox font get hijacked like this before.
I can't even override the font myself by adding CSS code such as the following to a gallery's web page:

*, html, body, #juicebox-container {
    font-family: Courier !important;
}

The icons still display fine in my own test gallery, even with the code above in place.

In order to troubleshoot the problem further, please try the following.
(1) Create a sample gallery with JuiceboxBuilder-Pro (the desktop application which comes with Juicebox-Pro).
(2) Upload the complete gallery folder to your web server.
(3) Open the gallery's 'index.html' file (inside the gallery folder) to view the gallery on a web page of its own.

If the icons all display fine when you view the test gallery on its own 'index.html' page, then there is no problem with your server and the problem lies somewhere within the code on your other gallery's web page.
If the icons do not display fine in the test gallery, then there is likely to be a problem with the font MIME types on your server.

This should at least point you in the right direction and be one step closer to reaching a solution.

You could also use your browser's developer tools (F12) to try to figure out what custom CSS code on your web page might be overriding the gallery's own font.

1,589

(4 replies, posted in Juicebox-Pro Support)

The Splash Page was designed to be a placeholder for the gallery in Small Screen Mode (essentially an image link with some information) where the gallery may be too small to be useable (on small screen devices) if it is embedded into a web page. When the Splash Page is clicked (or tapped), the gallery is expanded to give the images as much room to be displayed as possible.

You can still use the Splash Page in Large Screen Mode if you like (by setting showSplashPage="ALWAYS") but the Splash Page's functionality will remain the same.

There is a little more information about the Splash Page in the Screen Modes section of the Gallery Tour.

There is no way to override how the Splash Page functions in a Juicebox gallery and it sounds like you might need to create your own custom version of the Splash Page in your web page and load your gallery in its place when it is clicked.
This would certainly be possible but knowledge of HTML, CSS and JavaScript will likely be required (and it would be much easier to work with the available configuration options to reach a compromise).

1,590

(1 replies, posted in Juicebox-Pro Support)

How I can configure so a unique URL for each image is displayed in the browser URL bar as the album is being viewed?

Set enableDirectLinks="TRUE" (in JuiceboxBuilder-Pro's 'Customize -> General' section) and each image in the gallery will have its own unique URL (the gallery's own URL with a # identifier at the end with a number representing the image's position in the gallery). The URL will change as images are selected in the gallery and each unique URL can be used to go directly to its corresponding image in the gallery. There is a short description of this configuration option in the General section of the Config Options page.

I switched to JB, the gallery is very nice, but nothing shows up in the search engines (while other images from the same site/page that are not in the JB album, do show up in search engines).

Select the 'Add SEO Content' checkbox in JuiceboxBuilder-Pro's 'Sharing' section (to instruct JuicboxBuilder-Pro to generate SEO Content code) and, if you are embedding your gallery into an existing web page (rather than just using the gallery's own 'index.html' file where the SEO Content code will already be present), then be sure to copy all the embedding code on JuiceboxBuilder-Pro's 'Publish' tab.
Please see the Search Engine Optimization support section for further information.

1,591

(9 replies, posted in Juicebox-Pro Support)

You're welcome!
I'm glad you've been able to implement one of my suggestions into your gallery.
Thank you for letting me know.

Juicebox was designed as an image viewer and, as such, does not support videos.
Please see this FAQ:
Will Juicebox load things other than images?

You may need to incorporate your videos either alongside your galleries (rather than within the galleries themselves) or on different web pages.

1,593

(4 replies, posted in Juicebox-Pro Support)

I placed the font files (extracted from the jbcore folder) to the following, which was recommended by Drupal community -

\sites\all\libraries\juicebox\classic\fonts -

That sounds correct. The module's documentation (Step #3 on this web page) states that you should copy the entire contents of the 'jbcore' folder to your /sites/all/libraries/juicebox/ directory. You should not need to find the font files specifically, though: just upload the entire contents of the 'jbcore' folder to your /sites/all/libraries/juicebox/ directory, keeping the 'jbcore' folder structure intact, and the font files should be uploaded (along with all the other resource files that Juicebox needs) to the correct location on your web server.

The problem is likely to be caused by one of the following:

(1) Please double-check that the font files are present in the correct location on your web server. Even if you find that they are where they should be, try re-uploading them in case something happened during the initial upload which has somehow resulted in corrupt files.

(2) A browser setting or extension might be causing the problem. Try viewing your gallery in a different browser (Edge, Firefox, Internet Explorer 11, Opera, Safari) to see if this makes a difference. If the icons appear OK in a different browser, then try temporarily disabling all extensions in your Chrome browser to see if this helps.

(3) Check that there are no global CSS font rules on your web page which might be setting a custom font for all elements which is overriding Juicebox's own icon font.

(4) A further cause of your problem might be incorrect or missing MIME types for the font files on your web server.
If this is the case, then you may have to contact your web host to ask if they can add the font file types (.eot, .svg, .ttf, .woff) to the list of known MIME types (so that browsers know what to do with them).

If you continue to experience difficulties, I'd be happy to help further but I'd really need to see the problem live on your web server (to at least try to determine whether the problem is server-side or client-side) but I notice that your gallery is currently password protected.
I hope that my notes above point you in the right direction but if you need any further assistance and are happy for me to view your gallery, please let me know and I'll send you an email where you can send me your web page's login details.
Thank you.

First of all, I would try to embed the gallery directly into the web page that you want the gallery to appear in.
This should prevent you from having to deal with iframe problems on mobile devices.

Next, if your Shopify page is actually on your own domain (the same domain where your gallery folder has been uploaded to), then there should be no need to use a CORS solution. You should be able to just use the regular embedding code (or the baseUrl embedding code if you have uploaded the entire gallery folder rather than just its contents).

But the gallery does not display: https://www.charleychau.com/pages/test-gallery-2

This is because you've uploaded the .htaccess file to gallery.charleychau.com but the paths in the embedding code point towards www.gallery.charleychau.com (note the different 'www' subdomain). (When I posted the code above, I just copied the path from the 'src' attribute of your iframe.)

Try changing the two paths in your embedding code from www.gallery.charleychau.com to just gallery.charleychau.com.

Alternatively, if you have direct access to the charleychau.com web space, then there is no need to have created a 'gallery' subdirectory (and it is probably just complicating matters).

If you can, upload your complete 'test-gallery' folder to the root directory of your charleychau.com domain and use the following embedding code in your 'test-gallery-2' page.

<!--START JUICEBOX EMBED-->
<script src="/test-gallery/jbcore/juicebox.js"></script>
<script>
  new juicebox({
    baseUrl: "/test-gallery/",
    containerId: "juicebox-container",
    galleryWidth: "100%",
    galleryHeight: "600",
    backgroundColor: "#222222"
  });
</script>
<div id="juicebox-container"></div>
<!--END JUICEBOX EMBED-->

This should hopefully be all that is required to allow the gallery to work when users visit either charleychau.com or www.charleychau.com.

1,595

(4 replies, posted in Juicebox-Pro Support)

It sounds like you are using the Splash Page in Large Screen Mode. When the Splash Page is clicked, the gallery expands using the useFullscreenExpand and expandInNewPage values.

Make sure you set screenMode="AUTO" (in JuiceboxBuilder-Pro's 'Customize -> General' section) and showSplashPage="AUTO" ('Customize -> Splash Page') and the Splash Page will not be used when the gallery is displayed in Large Screen Mode. A visitor to your web site will then be able to expand the gallery by clicking the Expand Button on the Button Bar (as long as you set showExpandButton="TRUE" and do not set buttonBarPosition="NONE").

If you continue to experience difficulties, please post back with the URL to your gallery so that I can take a look at its configuration options and hopefully help further.

If the width of your iframe is of concern, then you could try giving your iframe a width of 100% (either via the 'width' attribute or inline CSS):

<iframe src="https://www.gallery.charleychau.com/test-gallery/index.html" width="100%" height="600" frameborder="0" scrolling="no"></iframe>
<iframe src="https://www.gallery.charleychau.com/test-gallery/index.html" height="600" frameborder="0" scrolling="no" style="width: 100%;"></iframe>

It the layout of your gallery page is the problem, then you're seeing the thumbnail page of Small Screen Mode for the following reasons:
(1) Small Screen Mode is used by default on mobile devices.
(2) When a gallery is embedded with dimensions of 100% x 100% on a page of its own (with no other content), then the Splash Page is not used (and the thumbnail page is the first thing you'll see in Small Screen Mode). Your gallery fits this description as it is embedded full-page in 'index.html' on your 'charleychau.com' domain.

As you have uploaded your gallery to a regular web server which you seem to have control over, perhaps the best option would be to embed your gallery using the baseUrl method (using absolute paths) and ensure that you set up a CORS (cross-origin resource sharing) solution. More information about CORS can be found here.
Normally, trying to embed a Juicebox gallery hosted on one domain and whose embedding code is on another will not work due to the Same-Origin Policy.
However, if you add the following code to an '.htaccess' file in the root directory of your 'charleychau.com' domain (where your gallery is hosted):

Header add Access-Control-Allow-Origin "*"

... then you should be able to replace the iframe in your Shopify page with the following code to embed your Juicebox gallery directly into your Shopify page:

<!--START JUICEBOX EMBED-->
<script src="https://www.gallery.charleychau.com/test-gallery/jbcore/juicebox.js"></script>
<script>
  new juicebox({
    baseUrl: "https://www.gallery.charleychau.com/test-gallery/",
    containerId: "juicebox-container",
    galleryWidth: "100%",
    galleryHeight: "600",
    backgroundColor: "#222222"
  });
</script>
<div id="juicebox-container"></div>
<!--END JUICEBOX EMBED-->

I hope this works for you.

1,597

(9 replies, posted in Juicebox-Pro Support)

Is that possible: 950px height on larger devices, less on small screens.

Juicebox uses only one galleryHeight value for both Small Screen Mode and Large Screen Mode so trying to use a different value for each screen mode is not going to be easy.
However, there are a few things you could try.

(1) Load the gallery with dimensions for Large Screen Mode, check the Screen Mode being used (via the Juicebox-Pro API getScreenMode() method) and resize the gallery with appropriate dimensions (via the setGallerySize() method) if Small Screen Mode is being used. However, the setGallerySize() method accepts only fixed pixel values for both the width and height so maintaining a width of 100% would not be possible using this method.
If you wanted to try this, though, you could use embedding code such as:

<script>
    var galleryWidthLargeScreenMode = '1000';
    var galleryWidthSmallScreenMode = '1000';
    var galleryHeightLargeScreenMode = '950';
    var galleryHeightSmallScreenMode = '650';
    var jb = new juicebox({
        containerId: "juicebox-container",
        galleryWidth: galleryWidthLargeScreenMode,
        galleryHeight: galleryHeightLargeScreenMode,
        screenMode: "AUTO"
    });
    jb.onInitComplete = function() {
        var screenMode = jb.getScreenMode();
        if (screenMode === 'SMALL') {
            jb.setGallerySize(galleryWidthSmallScreenMode, galleryHeightSmallScreenMode);
        }
    };
</script>

(2) Use your own custom JavaScript function to check if a mobile device is being used to view the gallery and then set a gallery height accordingly. It is unlikely that your JavaScript check will exactly match up with Juicebox's own internal test for whether to use Small or Large Screen Mode (I do not know the exact logic that Juicebox uses) but it might be good enough for most situations.
You could maybe use a galleryHeight entry in your embedding code such as:

galleryHeight: /Android|BlackBerry|iPad|iPhone|iPod|Nexus|webOS/i.test(navigator.userAgent) ? '650' : '950',

(3) Load the gallery with dimensions for Large Screen Mode, check the Screen Mode being used (via the Juicebox-Pro API getScreenMode() method) and reload the gallery with appropriate dimensions if Small Screen Mode is being used. This method will allow you to maintain a gallery width of 100% (unlike #1 above) and your choice of heights will always match up with the Screen Mode being used (unlike #2 above) but it would be the most complicated of the 3 suggestions to implement and you'd probably want to hide things using CSS until the gallery has been loaded with the correct dimensions (and you'd also need a tracking variable to ensure that the reloading of the gallery does not happen repeatedly).
To see this in action, create a test gallery with JuiceboxBuilder-Pro and use the following code as the gallery's 'index.html' file.

<!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">
            body {
                margin: 0px;
            }
            #juicebox-container {
                display: none;
            }
        </style>
        <script type="text/javascript" src="jbcore/juicebox.js"></script>
        <script type="text/javascript">
            var counter = 0;
            var galleryWidthLargeScreenMode = '100%';
            var galleryWidthSmallScreenMode = '100%';
            var galleryHeightLargeScreenMode = '950';
            var galleryHeightSmallScreenMode = '650';
            var jb;
            function loadGallery(width, height) {
                jb = new juicebox({
                    containerId: "juicebox-container",
                    galleryWidth: width,
                    galleryHeight: height,
                    screenMode: "AUTO"
                });
                counter++;
            }
            loadGallery(galleryWidthLargeScreenMode, galleryHeightLargeScreenMode);
            jb.onInitComplete = function() {
                var screenMode = jb.getScreenMode();
                if (counter === 1 && screenMode === 'SMALL') {
                    loadGallery(galleryWidthSmallScreenMode, galleryHeightSmallScreenMode);
                }
                if ((counter === 1 && screenMode === 'LARGE') || (counter === 2 && screenMode === 'SMALL')) {
                    $('#juicebox-container').show();
                }
            };
        </script>
        <title>Test</title>
    </head>
    <body>
        <div id="juicebox-container"></div>
    </body>
</html>

#2 would certainly be the easiest to implement but you might like to try incorporating the code from #3 into your web page.

I hope this helps.

1,598

(9 replies, posted in Juicebox-Pro Support)

Actually, a fixed height gallery often works very well in web pages that have a lot of content and scroll vertically (and are not designed to fit all content within the browser window without any scrolling). The gallery can still be responsive in the horizontal dimension (as long as the gallery's width is defined as a percentage and your web page's layout is, itself, responsive).

1,599

(9 replies, posted in Juicebox-Pro Support)

The gallery's dimensions are determined by the galleryWidth and galleryHeight options (set in the embedding code) and the gallery's size remains constant (unless percentage dimensions are used and the size of the browser window changes). No controls within the gallery will affect the gallery's size.

When you choose to show thumbnails, then space needs to be made available for them so the size of the main image decreases.
When you chose to hide the thumbnails, then extra space within the gallery becomes available and the size of the main image increases to take advantage of this (to display the main image as large as possible within the gallery).

It is not possible to not change the size of the main image when the thumbnails are toggled on or off (you'd have a blank space where the thumbnails would be when they are not shown).

You could, however, choose to always use the Small Screen Mode version of the gallery, where thumbnails and main images are displayed on separate pages (rather that sharing the gallery space together on the same page), by setting screenMode="SMALL" (in JuiceboxBuilder-Pro's 'Customize -> General' section).

If you choose to continue to use screenMode="AUTO", then you can disable the thumbnails completely when the gallery is displayed in Large Screen Mode by setting showThumbsOnLoad="FALSE" ('Customize -> Thumbnails') and showThumbsButton="FALSE" ('Customize -> Lite'). Alternatively, you can always have the thumbnails displayed (and prevent them from being hidden) by setting showThumbsOnLoad="TRUE" and showThumbsButton="FALSE".

If you really want to have the size of your gallery change when the thumbnails are toggled on or off, then you could try something like the following which takes advantage of several Juicebox-Pro API methods.
Create a sample gallery in JuiceboxBuilder-Pro and use the following code as the gallery's 'index.html' file.

<!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">
            body {
                margin: 0px;
            }
        </style>
        <script type="text/javascript" src="jbcore/juicebox.js"></script>
        <script type="text/javascript">
            var galleryWidthHideThumbnails = 600;
            var galleryWidthShowThumbnails = 600;
            var galleryHeightHideThumbnails = 400;
            var galleryHeightShowThumbnails = 505;
            var jb = new juicebox({
                containerId: "juicebox-container",
                galleryHeight: galleryHeightShowThumbnails,
                galleryWidth: galleryWidthShowThumbnails,
                showThumbsButton: "TRUE",
                showThumbsOnLoad: "TRUE"
            });
            jb.onInitComplete = function() {
                if (jb.getScreenMode() === "LARGE") {
                    jb.onShowThumbs = function(showing) {
                        window.setTimeout(function() {
                            var width = showing ? galleryWidthShowThumbnails : galleryWidthHideThumbnails;
                            var height = showing ? galleryHeightShowThumbnails : galleryHeightHideThumbnails;
                            jb.setGallerySize(width, height);
                        }, 500);
                    }
                }
            };
        </script>
        <title>Test</title>
    </head>
    <body>
        <div id="juicebox-container"></div>
    </body>
</html>

You can change the gallery dimensions as you like.

Please note that this is not an ideal solution. Juicebox was not designed with this in mind and a short delay is required to ensure that the gallery is not resized until after the thumbnails are toggled on or off. This ensures that the thumbnails are not temporarily displayed on top of the main image (which looks untidy) but has the side effect that the main image is temporarily resized when the thumbnails are shown (slightly less untidy).

As this is not something that Juicebox was designed to do, I would recommend using the available configuration options to reach a compromise although you are certainly free to use and modify the code I provided if you like (although please be aware that trying to do something that Juicebox was not designed to do can often be fraught with difficulties and unforeseen problems might need to be tackled along the way).

I hope these notes help.

1,600

(10 replies, posted in Juicebox-Pro Support)

The code I posted above seems to work OK for myself. (The default click handler for the Shopping Cart button is removed successfully before adding a new custom one.)
The only way I can make it fail is to load a separate version of jQuery into the gallery's web page (for more than the basic jQuery functionality that is built into the 'juicebox.js' file).
I do not know if you are doing this but I suspect the code you posted above is incomplete (there is no opening <body> tag and your JavaScript code refers to a #modalShoppingCart element which does not exist).
If you are loading a separate version of jQuery, then try adding the following code immediately after loading the external file:

<script>
    $.noConflict();
</script>

... and continue to use:

$('.jb-bb-btn-fotomoto').off('click');

... but use the alias jQuery instead of $ for all other jQuery calls, e.g.:

jQuery('.jb-bb-btn-fotomoto').click(function(event) {

This seems to work in my own tests.
I hope this helps.