Hie!
I've just change your fancybox code in order to implement a new functionality : A slideshow (button) command with interval option.
It´s a very simpe modification and with this option, you can open an fancybox with automatic slideshow - new option: {'interval:'1000}
The 'modified jquery.fancybox' zip file contain a "ready to test" html code... (! I've change directories names !)
Regards,
Eric Tabbone
-----------------------------------------------------------------------------
USAGE:
<script type="text/javascript">
$(document).ready(function() {
$("a[rel=example_group]").fancybox({'interval':3000});
}
</script>
This start a slide show with all 'rel=example_group' images with a 3s interval (if interval = 0 ==> no slideshow)
Option "cyclic" is automaticaly set on 'true';
You can set the CSS 'diplay' option to 'none' if you wat to hide all images (except the first one).
<a rel="example_group" href="./example/9_b.jpg" title="Lorem ipsum dolor sit amet"><img alt="" src="./example/9_s.jpg" /></a>
<a rel="example_group" href="./example/10_b.jpg" title="Lorem ipsum dolor sit amet" style="display:none" ><img alt="" src="./example/10_s.jpg" /></a>
<a rel="example_group" href="./example/11_b.jpg" title="" style="display:none" ><img alt="" src="./example/11_s.jpg" /></a>
<a rel="example_group" href="./example/12_b.jpg" title="Lorem ipsum dolor sit amet" style="display:none" ><img class="last" alt="" src="./example/12_s.jpg" /></a>
IMAGES
No image modification, only 2 more icons.
- fancy_play.png
- fancy_pause.png
MODIFICATION LIST (jquery.fancybox-1.3.4.js):
IN: ;(function($) {
var tmp, loading, overlay, wrap, outer, content, close, title, nav_left, nav_right, slide, slide_play, slide_pause, slide_start = true,
IN: _start = function() {
if (obj.nodeName && !selectedOpts.orig) {
selectedOpts.orig = $(obj).children("img:first").length ? $(obj).children("img:first") : $(obj);
}
if (currentOpts.interval>0) {
selectedOpts.cyclic = true;
}
if (title === '' && selectedOpts.orig && selectedOpts.titleFromAlt) {
title = selectedOpts.orig.attr('alt');
}
[...]
if (selectedOpts.modal) {
selectedOpts.overlayShow = true;
selectedOpts.hideOnOverlayClick = false;
selectedOpts.hideOnContentClick = false;
selectedOpts.enableEscapeButton = false;
selectedOpts.showCloseButton = false;
selectedOpts.interval = 0;
}
IN: _finish = function () {
$.fancybox.center();
if ((currentOpts.interval>0) && slide_start && (currentArray.length>1))
{
slide_start = false;
slide = setInterval($.fancybox.next, currentOpts.interval);
slide_play.hide();
slide_pause.show();
}
currentOpts.onComplete(currentArray, currentIndex, currentOpts);
IN: $.fancybox.init = function() {
title = $('<div id="fancybox-title"></div>'),
slide_play = $('<div id="fancybox-slide-play"></div>'),
slide_pause = $('<div id="fancybox-slide-pause"></div>'),
nav_left = $('<a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a>'),
[...]
nav_left.click(function(e) {
e.preventDefault();
$.fancybox.prev();
if(!slide_start) {
slide_pause.hide();
slide_play.show();
clearInterval(slide);
}
});
nav_right.click(function(e) {
e.preventDefault();
$.fancybox.next();
if(!slide_start) {
slide_pause.hide();
slide_play.show();
clearInterval(slide);
}
});
slide_play.click(function(e) {
e.preventDefault();
slide_play.hide();
slide_pause.show();
if(!slide_start) {
slide_start = true;
$.fancybox.next();
}
});
slide_pause.click(function(e) {
e.preventDefault();
slide_pause.hide();
slide_play.show();
if(!slide_start) {
clearInterval(slide);
}
});
IN: $.fn.fancybox.defaults = {
padding : 10,
margin : 40,
opacity : false,
modal : false,
cyclic : false,
interval : 0,
scrolling : 'auto', // 'auto', 'yes' or 'no'
CSS MODIFICATION (jquery.fancybox-1.3.4.css)
#fancybox-slide-play {
position: absolute;
top: -15px;
left: -15px;
width: 30px;
height: 30px;
background: transparent url('../img/fancy_play.png');
cursor: pointer;
z-index: 1105;
display: none;
}
#fancybox-slide-pause {
position: absolute;
top: -15px;
left: -15px;
width: 30px;
height: 30px;
background: transparent url('../img/fancy_pause.png');
cursor: pointer;
z-index: 1106;
display: none;
}
/* IE6 */
.fancybox-ie6 #fancybox-slide-play { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='img/fancy_play.png', sizingMethod='scale'); }
.fancybox-ie6 #fancybox-slide-pause { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='img/fancy_pause.png', sizingMethod='scale'); }