You could embed the gallery directly in a web page rather than using the Splash Page by setting showSplashPage="NEVER". However, this is a Pro-only option, too.

Maybe the best solution for Juicebox-Lite at the moment (until the bug is fixed) would be to create your own version of a Splash Page (an image link using HTML) which would link directly to the gallery's own HTML index page (opening the gallery on a web page of its own). Even a text link such as the following would work:

<a href="gallery_folder/index.html">Click to open gallery.</a>

Would the expandInNewPage in the pro version fix this?

Yes (although this should not be necessary).
What you are describing is actually a known bug whereby elements which have explicitly been assigned a CSS 'position' are not covered when the gallery is expanded either from the Splash Page or by clicking the Expand Button (they should be). This bug has already been addressed and will be fixed in the next version of Juicebox (although I do not know when it will be released).
In the meantime, the workaround (for Juicebox-Pro users), is to set expandInNewPage="TRUE" so that, when the gallery is expanded, it is displayed on a page of its own rather than on top of the embedding page.

3,253

(7 replies, posted in Juicebox-Pro Support)

I'm very happy to hear that you have been able to resolve your problem.
I'm glad I was able to help in some small way (by reporting my findings and at least pointing you in the right direction).
Thank you very much for taking the time to email me back to let me know and for posting details of your problem and solution in the forum thread.
Hopefully it will help other users facing a similar problem.

Each user will have different requirements and, in resizing images, it may help to know the target audience.
For example, if your gallery is likely to be viewed on a mobile device, then you could probably get away with having much smaller images in your gallery than if the gallery is likely to be displayed on a large desktop monitor (the content of the images and web site may play a part in determining this).
The default values in JuiceboxBuidler-Pro usually result in a good compromise between size and quality for most users (or at least a good starting point for the values to be tweaked).

Personally, I convert my own RAW images to JPEG and then feed these JPEG images to JuiceboxBuilder.
The source JPEG images are approximately 10MB each and, using the default 'Large Images' settings of 2048 x 1536 at 80%, the resulting large images are approximately 400KB each. The resulting image look good enough for me (although I understand that everyone will have their own opinion as to what is 'good enough' for their own galleries).

I do not know exactly how JuiceboxBuilder-Pro internally resizes PNG images (using whatever resizing library or algorithm that Adobe AIR provides) but the only user controls are the dimensions and quality settings.
It looks like you would have much smaller (file size) images if you worked with JPEG images from start to finish.

As long as your source images are of a high enough quality, it is unlikely that the images used in your gallery would be visually unacceptable (especially if you kept the quality setting high enough).

Otherwise, you could always create your own set of large images in Photoshop and copy them across into your gallery's 'images/large/' folder. It might be an extra step in your workflow but if it results in a gallery that you are more happy with, then it might be worth doing.

3,255

(3 replies, posted in Juicebox-Pro Support)

In a 100% x 100% gallery on a mobile device (where the gallery is the only element on the web page and the web page fills the browser window), the viewport is locked and pinch-zooming is disabled. It would not be possible to change this.
Pinch zooming would be possible only if the gallery is embedded in a web page alongside other content (at dimensions of less than 100% x 100%) which would result in the viewport not being locked by Juicebox.

3,256

(3 replies, posted in Juicebox-Pro Support)

The z-index value of your menu should be higher than that of your gallery (and its internal components) so that the menu is stacked on top of the gallery. I would recommend trying a z-index value of 9999 for your menu (and not manually applying a z-index value to any gallery elements at all).

Also, you will need to ensure that the z-index value is assigned to the correct class or id of your menu system.

If you are unsure which classes or ids should be assigned z-index values, please post the URL to your web page so that I can take a look and hopefully help further.

3,257

(7 replies, posted in Juicebox-Pro Support)

Juicebox proposes to copy the embedding code "as is" into the HTML page (it even provides a separate button for copying)! Which doesn't mean to modify the text, does it?

The embedding code should be copied into your web page unmodified as HTML code.
If RapidWeaver thinks that whatever you are pasting should be displayed on screen as plain text (rather than parsed by the browser as HTML code), then it will escape certain entities (as you have reported).
It looks like you may need to check that you are entering the embedding code as raw HTML rather than plain text. Please check the input mode on your editor.

I'm using the standard Safari browser, running with Mavericks, so what shall be wrong with this browser?

There is nothing wrong with this browser. My point was that if any browser sees a line such as:

<script src=&bdquo;jbcore/juicebox.js&bdquo;></script>

... then the browser will fail to load the 'juicebox.js' file into the web page and the Juicebox gallery will, therefore, fail to display (as that is no longer valid HTML code, having been modified by Rapidweaver).

Going deeper I got this:

The error message you pasted suggests that your gallery files may be on a different domain or subdomain to the web page containing the gallery's embedding code. All gallery files must be on the same domain or subdomain due to the JavaScript same-origin policy. Otherwise, you could implement a Cross-Origin Resource Sharing (CORS) solution by adding the following line of code to the .htaccess file in the root directory of the domain which currently hosts your gallery.

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

Please tell me an address where to send it to.

It would certainly help if I could see the code you are using and the file structure of your site.
If possible, please send me a zip file of your complete project. I have sent you a message with an email where you can forward it to me.
In the meantime, please make sure that you are entering your embedding code in RapidWeaver's raw HTML (rather than plain text) input mode so that your double-quotes are not escaped. I am not familiar with Rapidweaver but their own support (or a web search) should hopefully be able to help you with this.

3,258

(7 replies, posted in Juicebox-Pro Support)

It's not so much Juicebox that doesn't understand src=&bdquo;juicebox/jbcore/juicebox.js" but your browser.
RapidWeaver may be escaping the initial double quote in order to display the actual embedding code as text on your web page.
Please make sure that you are entering your embedding code as HTML code rather than plain text.

Incidentally, &bdquo; is a double low-9 quotation mark. You should probably be using standard double quotation marks (which would escape to &quot;) instead.

After undoing this replacement, at least juicebox.js shows a gray area and immediately the text message "Juicebox Error: Config XML file not found" though the config.xml file is still at the same place as it was before.

Please post the URL to your gallery's web page so that I can take a look and help further. The problem is likely to be the path to the gallery's XML file.

Even using the option configUrl does not help (where RW6 again substitutes the first apostrophe with the HTML syntax which juicebox cannot deal with).

Again, ensuring that you are entering your embedding code as HTML code rather than plain text should hopefully solve this problem. Chapter 7 in this web page may help with this.

This bug is due to be fixed in the next version of Juicebox (although I do not know when it will be released).
If you would like to be notified when new versions are released, then please join the mailing list at the foot of our homepage, follow us on Twitter @JuiceboxGallery or subscribe to our blog RSS feed.

The 'theme.css' file which comes bundled with Juicebox-Pro v1.4.2 is the correct one (even though it is labelled as v1.4.1).
The labelling of the file as v1.4.1 was just an oversight (it should have been labelled as v1.4.2).
v1.4.1 and v1.4.2 actually use the same 'theme.css' file.

The only change in Juicebox from v1.4.1 to v1.4.2 was the handling of Flickr API URLs (please see the Version History for full details of changes between versions) and this did not require any CSS changes.

I hope this helps explain things and reassures you that the 'theme.css' file in v1.4.2 is OK.

3,261

(9 replies, posted in Juicebox-Pro Support)

Is there a way to have the back button go to a relative URL, which would be, for example : /e/   
and which would work for both sub-domains (mobilef.grantsymon.com + mobile.grantsymon.com)?

You could certainly set the backButtonUrl to use a path starting with a leading slash (to denote your root directory).
This should work on whatever domain (or subdomain) the gallery is on.
However, this will work only within the iframe.

You could perhaps attach a custom click handler to the Back Button icon class and load the URL (starting with the leading slash to work on both your subdomains) as the 'top' window (replacing the iframe and its parent page) using JavaScript.
You could try using embedding code such as the following:

<!--START JUICEBOX EMBED-->
<script src="jbcore/juicebox.js"></script>
<script>
    // Give your 'juicebox' object a variable name (in this example 'jb') so that you can refer to it later
    var jb = new juicebox({
        containerId: 'juicebox-container',
        backButtonPosition: 'TOP',
        backButtonUseIcon: 'TRUE'
    });
    // Attach the click handler to the Back Button icon class when the gallery is ready
    jb.onInitComplete = function() {
        $('.jb-go-back').click(function() {
            // Load the URL as the 'top' window (replacing the iframe and its parent page)
            window.top.location.href = '/e/';
        });
    };
</script>
<div id="juicebox-container"></div>
<!--END JUICEBOX EMBED-->

Hopefully you will be able to implement this within your project.

3,262

(8 replies, posted in Juicebox-Pro Support)

Unfortunately, there will inevitably be unforeseen pitfalls when trying to make Juicebox do something it was not designed to do (especially when interacting directly with Juicebox CSS classes).

Perhaps the easiest way to overcome this problem might be to give your gallery fixed pixel dimensions (rather than percentage dimensions) so that the gallery is not resized dynamically if/when the browser window is resized.

3,263

(3 replies, posted in Juicebox-Pro Support)

It might not be as difficult as you think.
You could use the online custom cursor creator (link above) to create a couple of new cursors (one for the 'previous' hit area and one for the 'next' hit area).
After designing the images, download the cursor files, and name them 'previous.cur' and 'next.cur'.
Next, copy the two .cur files into your gallery's 'jbcore/classic/' folder.
Finally, add the CSS code (from my post above) to the end of the 'jbcore/classic/theme.css' file (in a plain text editor).

3,264

(2 replies, posted in Juicebox-Pro Support)

The Button Bar doesn't appear when it's set to "TOP".

The Button Bar should certainly appear when buttonBarPosition="TOP". Make sure that the topAreaHeight (in JuiceboxBuilder-Pro's 'Cusrtomize -> General' section) is not too small for the Button Bar to be visible.
The Open Image button will always be part of the Button Bar and the Button Bar can be positioned only using the buttonBarPosition configuration option (OVERLAY, OVERLAY_IMAGE, TOP or NONE).

It sounds like setting buttonBarPosition="TOP" and buttonBarHAlign="LEFT" (to horizontally align the Button Bar to the left side of the gallery) might be suitable for your gallery's layout.

Alternatively, you could create your own HTML 'Open Image' button, position it on your web page alongside your gallery and have it act like the Juicebox 'Open Image' button by opening the main image in a new tab or window when it is clicked.
You would use the Juicebox-Pro API (specifically the getImageInfo() method) to determine the imageURL (or linkURL) of the currently displayed image and then use JavaScript to open the URL in a new tab or window.

If you would like to see how a custom 'Open Image' button would work, then create a sample gallery using JuiceboxBuilder-Pro and use the following code as the gallery's HTML index page.

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" id="jb-viewport" content="minimal-ui" />
        <style type="text/css">
            body {
                margin: 0px;
            }
        </style>
        <script type="text/javascript" src="jbcore/juicebox.js"></script>
        <script type="text/javascript">
            var jb = new juicebox({
                containerId: "juicebox-container",
                galleryHeight: "400",
                galleryWidth: "600"
            });
            $(document).ready(function() {
                $('#open').click(function() {
                    var index = jb.getImageIndex();
                    var info = jb.getImageInfo(index);
                    var url = info.imageURL;
                    window.open(url);
                });
            });
        </script>
        <title>Test</title>
    </head>
    <body>
        <div id="input">
            <input id="open" type="button" value="Open Image" />
        </div>
        <div id="juicebox-container"></div>
    </body>
</html>

If you continue to experience difficulties, please post the URL to your gallery's web page so that I can take a look and help further.

3,265

(3 replies, posted in Juicebox-Pro Support)

If you are looking to have the gallery displayed in your web page instead of the Splash Page (which is displayed by default in Small Screen Mode when the gallery is embedded in a page with dimensions of less than 100% x 100%), then you can enter showSplashPage="NEVER" in the Pro Options text area.

Alternatively, you could force the gallery to be displayed in Large Screen Mode (which does not display the Splash Page unless showSplashPage="ALWAYS") by setting screenMode="LARGE".

For more information about the Splash Page and Screen Modes, please see here.

If you are looking to actually pinch-zoom an image within a Juicebox gallery, then this is possible but you would need to be very precise as the start of a pinch-zoom gesture is likely to be interpreted as the start of a gallery-specific gesture (such as a swipe to navigate between images).

I hope this helps.

3,266

(1 replies, posted in Juicebox-Pro Support)

Please note that we did not write the Juicebox module for Drupal ourselves and I am not familiar with its code (or how it populates the image titles and captions).
Other Drupal users may be reading this thread and can perhaps contribute some useful information but you would likely receive more help by posting your query in the Drupal forum where the author of the module will be able to answer your query.

For the content type "Image" I've activated the title and alt fields. When adding fields to a view I'm missing the field "Content: Image (field_image:title)". All I see is the field "Content: Image (field_image:delta)". So that's more of a Drupal issue I guess.

With regard to the Image Field Caption, the documentation on this web page says the following:

Image field caption. Active only when the Image Field Caption module is enabled. Available for image fields.

Please check that you have the Image Field Caption module enabled. This might be the cause of your problem.

I realise that this may not directly answer your query but I hope it at least points you in the right direction.

3,267

(2 replies, posted in Juicebox-Pro Support)

maxCaptionHeight is a pixel value (rather than a number of text lines). If you have set your gallery's maxCaptionHeight to only 5, this will not be large enough to display your caption text. Try increasing it. (The default value is 120.)

When you select 'Images -> Captions -> Use IPTC Caption', JuiceboxBuilder-Pro will extract the IPTC Caption embedded within each image and use it as the image's caption. If there is no such data embedded within the image, the caption will be blank.

(If you use Adobe Photoshop to enter your IPTC data, then use the IPTC Document Title field for the Juicebox title and the IPTC Description field for the Juicebox caption.)

If you click on a thumbnail on the 'Images' tab, you can enter custom text for the image's caption.

If none of the above helps and you still do not see captions in your gallery, please post the URL to your gallery so that I can take a look and hopefully help further.

3,268

(8 replies, posted in Juicebox-Pro Support)

I'll try to break it down for you by commenting the code.

<!--START JUICEBOX EMBED-->
<script src="jbcore/juicebox.js"></script>
<script>
    // Need to give 'juicebox' object a variable name (e.g. 'jb') so that you can refer to it later.
    var jb = new juicebox({
        containerId: 'juicebox-container'
    });
    // onImageChange function is fired each time a different image is selected.
    jb.onImageChange = function() {
        // If the selected image is the first one...
        if (jb.getImageIndex() === 1) {
            // Standard JavaScript timeout is required to work correctly. Need to wait a short while before image can be replaced.
            setTimeout(function() {
                // The next line uses jQuery (bundled within the 'juicebox.js' file) to replace the main image (class name 'jb-dt-main-image') with custom HTML code.
                $('.jb-dt-main-image').html('<p>Text to be displayed in place of the first image.</p>');
            }, 250);
        }
    };
</script>
<div id="juicebox-container"></div>
<!--END JUICEBOX EMBED-->

I hope that makes it a little more understandable.
Essentially, you would give your 'juicebox' object a variable name (such as 'jb') and add the following code to your gallery's web page (below the gallery's embedding code), changing the HTML text as appropriate:

<script>
    jb.onImageChange = function() {
        if (jb.getImageIndex() === 1) {
            setTimeout(function() {
                $('.jb-dt-main-image').html('<p>Text to be displayed in place of the first image.</p>');
            }, 250);
        }
    };
</script>

I hope that helps.

3,269

(1 replies, posted in Juicebox-Pro Support)

It looks like the problem is with the height of the gallery rather than with the size of the images themselves.
Your gallery currently has a height of 70%. This means that your gallery's actual height will 70% of the height of its parent container.
When using a percentage value for a gallery's height, it is necessary to explicitly give the gallery's parent container a height so that Juicebox can calculate the gallery's actual height. Juicebox needs to know what the gallery's actual height should be 70% of.

Try one of the following:
(1) Make sure that the gallery's parent container has a height specified via CSS and increase its value if necessary.
This may be difficult to do in a CMS environment such as Drupal where containers are created by the theme.
... or:
(2) Set your gallery's height to be a fixed pixel value rather than a percentage (such as '600px').

Please also see this note for Using Percentage Heights.

3,270

(5 replies, posted in Juicebox-Pro Support)

I understand your concerns and requirements but, unfortunately, I cannot answer your questions directly as I am not the author of Juicebox and I did not make any of the design decisions. I hope you understand.
However, thank you for posting your suggestion in the Feature Requests thread.

3,271

(8 replies, posted in Juicebox-Pro Support)

I see now what you are trying to do.
Unfortunately, it is not possible to treat the first image in a gallery any differently from all the other images.
You could perhaps add text as a caption and set captionPosition="OVERLAY_IMAGE" and use a large value for maxCaptionHeight to try to ensure that the text is displayed in its entirety. The caption area will resize as necessary (although the text within the caption area will remain at a constant font size).

Otherwise, you could perhaps use the Juicebox-Pro API and some custom CSS and JavaScript code to replace the first image with some custom text. For example:

<!--START JUICEBOX EMBED-->
<script src="jbcore/juicebox.js"></script>
<script>
    var jb = new juicebox({
        containerId: 'juicebox-container'
    });
    jb.onImageChange = function() {
        if (jb.getImageIndex() === 1) {
            setTimeout(function() {
                $('.jb-dt-main-image').html('<p>Text to be displayed in place of the first image.</p>');
            }, 250);
        }
    };
</script>
<div id="juicebox-container"></div>
<!--END JUICEBOX EMBED-->

A short timeout is required for this to work correctly which means that the first image in the gallery will be displayed briefly before being replaced with the custom text but as long as the first image in the gallery is a blank image, this should hopefully not matter too much.

I hope you are able to use one of the suggestions above.

Also noticed that the swipe feature (to change images) does not work on IE11, Win8. Is this a known issue?

Yes. We are currently investigating Windows 8 touchscreen issues and hope to have a resolution for the next version of Juicebox.

3,272

(3 replies, posted in Juicebox-Pro Support)

Juicebox-Pro does not have a configuration option similar to SimpleViewer-Pro's imageNavStyle="CURSOR".
However, being that Juicebox is an HTML gallery, you could create your own 'previous' and 'next' navigation cursors and apply them via CSS to the 'left' and 'right' hit areas of the gallery using the following classes.

.jbn-nav-touch-area.jbn-nav-left-touch-area {
    cursor: url(previous.cur),auto;
}

.jbn-nav-touch-area.jbn-nav-right-touch-area {
    cursor: url(next.cur),auto;
}

For more information on the CSS cursor property, please see here.
You could create custom cursors using this online cursor editor.

3,273

(8 replies, posted in Juicebox-Pro Support)

It sounds like you are looking to include SEO content in your gallery for web crawlers to pick up and index.
If so, select the 'Add SEO Content' checkbox in JuiceboxBuilder-Pro's 'Customize -> Sharing' section and use the embedding code provided on the 'Publish' tab (which contains the SEO content within the 'juicebox-container' div).

Please see here for further details.

3,274

(2 replies, posted in Juicebox-Pro Support)

You can selectively load a specific XML file using JavaScript and the configURL option as follows:

<!--START JUICEBOX EMBED-->
<script src="jbcore/juicebox.js"></script>
<script>
    var config = 'spanish.xml';

    if (language === 'english') {
        config = 'english.xml';
    }
    
    new juicebox({
        configUrl: config,
        containerId : "juicebox-container",
        galleryWidth: "100%",
        galleryHeight: "100%",
        backgroundColor: "#222222"
    });
</script>
<div id="juicebox-container"></div>
<!--END JUICEBOX EMBED-->

In the example above, you would need to define your own 'language' variable and test it to determine which XML file to use.

Glad to hear it was an easy fix. Thanks for letting me know.