Shutter Reloaded
Shutter Reloaded is an image viewer for your website that works similarly to Lightbox, Thickbox, etc. but is only about 10KB in size and does not require any external libraries. It has many features: resizing large images if the window is too small to display them with option to show the full size image, combining images in sets, redrawing the window after resizing, pre-loading of neighbour images for faster display and very good browser compatibility.
Demo
Download ShutterReloaded v2.0.1
Installation
Upload the “shutter” folder to your web server and add the following to your header (in this order):
<script type="text/javascript">
shutterOnload = function(){shutterReloaded.Init();}
</script>
<script src="shutter/shutter.js" type="text/javascript"></script>
<link rel="stylesheet" href="shutter/shutter.css" type="text/css" media="screen" />
Alternatively you can copy and paste the content of shutter.css to your site’s main css file, instead of loading it as a separate file.
If your site has html pages organized in subfolders, change the setting for Shutter’s buttons location in shutter.js from shutter/images/ to /shutter/images/ (add the starting slash). Then upload the “shutter” folder to your web site’s root directory (where your main index.html file is located) and include it on any page in any subfolder like this:
<script type="text/javascript">
shutterOnload = function(){shutterReloaded.Init();}
</script>
<script src="/shutter/shutter.js" type="text/javascript"></script>
<link rel="stylesheet" href="/shutter/shutter.css" type="text/css" media="screen" />
Activation
By default Shutter is activated on all links pointing to an image, with thumbnail or not. There’s no need for any changes to the page, just add Shutter in the header. It will display each image separately and will create sets for image links that have either class=”shutterset”, class=”shutterset_setname” or rel=”lightbox[setname]“.
For controlling which images are displayed, Shutter can be activated with shutterReloaded.Init('sh'). Next step is to add class=”shutter”, “shutterset” or “shutterset_setname” to the links pointing to the images you want to display.
class="shutter"will display one image at a timeclass="shutterset"will combine all image links in a single setclass="shutterset_setname", where setname is a short word and/or number, will create multiple sets on the page.
If you want to add css styles to the links, you can include a second class, but “shutterset” should be first. Example: class="shutterset_setname my-class".
Shutter Reloaded can also use Lightbox style activation and sets. You can activate it with shutterReloaded.Init('lb') and use rel="lightbox" for singe image display, or rel="lightbox[setname]" for sets of images.
There’s no limitations to the number of images or the number of sets on the page.
Customization
Shutter Reloaded has several customization options that can be selected by changing the values near the top of the shutter.js and shutter.css files. Follow the instructions in the comments there.
- The “Previous”, “Next”, “Close”, etc. buttons can be either images or text.
- The images count (“Image 1 of …”) can be hidden.
- All colours, font sizes and typefaces can be set in shutter.css.
- The icons for the image buttons can be replaced with transparent GIFs (unfortunately PNGs won’t work in IE6). The names should be the same, but the size can be different.
Frequently Asked Questions
Shutter doesn’t work at all. The images open in new pages.
Check the <body> tag on the page to see if it includes an “onload” event. If it does, that overwrites Shutter’s activation. Example:
<body onload="MM_preloadImages('/images...');">
An easy workaround is to add “shutterReloaded.Init();” to it, like this:
<body onload="shutterReloaded.Init(); MM_preloadImages('/images...');">
However the more compatible way to fix it would be to add
window.onload = function(){ MM_preloadImages('/images...'); }
just above “shutterOnload = …” in the header (inside the <script> tag). Then delete the “onload=…” from the <body> tag.
Shutter’s dark background doesn’t cover the whole page.
Add
body {margin: 0; padding: 0;}to your stylesheet.
Has anyone come up with a solution for Chrome?
I tried #26 but that did not work for me. The first photo stopped loading as well.
Hello,
There is some problems with Google Chrome browser. Sometimes images are not loaded or Loading continues forever and nothing shows.
I love the script….its light, fast, and looks good. I’ve used it on a number of testsites (WP and others) but I’m having a really hard time trying to figure out how to make it work on a phpbb forum. I’ve tried the suggestions about taking the window.onload = etc.. etc.. and moving it just above the “shutterOnload = …” inside the shutter tag but no luck. It IS loading the shutter js its just not initilializing as far as I can tell. Does anybody have any experience with using shutter and phpbb3 or any suggestions ?
Tia.
My client wants the gallery navigation inside the same box as the caption. The js file is too complex for me. Any suggestions? An alternative would be to have nav flush under the Caption box. I’ve tried modifying the CSS with no success. – thx
Can someone tell me how to stop it opening up links that don’t have a rel=”" tag?
Hello
I’m using shutter with next gen gallery on my wordpress blog and I would like to know if there is a way to stop the automatic Resizing of pictures ?
Thank you for your work and any answer you could provide
Fabien
OMG, I solved it seconds after my post. I’ve been searching for a while for a way to force the script to initialize again, and I found it.
I’m useing jquery to load the new images. I added this to my code, after it loaded the new content:
try{shutterReloaded.init();}catch(e){}
Full code:
jQuery.post(jQuery(this).attr(“href”), {
action: “galeria”,
page: jQuery(this).attr(“id”)
}, function(data) {
div.html(data);
try{shutterReloaded.init();}catch(e){}
}
);
Hope I was able to help.
@Sumit: I’ve got the same problem. I’m trying to make it work somehow, but no luck yet.
Ok i solved the second question.
But i got another one
If you load pictures via AJAX – the shutter script don’t work for images which are loaded in the ajax-area (e.g. tabs). I think the script is not executed again so shutter don’t know the images which are loaded via ajax afterwards. Adding class=”shutter” doesn’t work either.
I hope you understand my problem, sorry for the bad english.
Do you guys have any idea how i solve this problem?
Hi there
Nice Script – i’m using it a long time now but i got a view questions:
1. Is it possible to add navigation in image-sets via arrow keys?
2. The navigation-bar doubles it’s height while displaying images, larger then the height of the screen. the consequence is, that the Nav-Images are displayed wrong (positioning problem). What can i do to fix that?
3. is it possible to close the image-viewer also when the user clicks on the background (the transparent bg-color)?
i would really appreciate some help.
Sumit