66
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
1 |
/** |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
2 |
* Interface Elements for jQuery |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
3 |
* Slideshow |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
4 |
* |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
5 |
* http://interface.eyecon.ro |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
6 |
* |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
7 |
* Copyright (c) 2006 Stefan Petre |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
8 |
* Dual licensed under the MIT (MIT-LICENSE.txt) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
9 |
* and GPL (GPL-LICENSE.txt) licenses. |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
10 |
* |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
11 |
*/ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
12 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
13 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
14 |
/** |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
15 |
* Creates an image slideshow. The slideshow can autoplay slides, each image can have caption, navigation links: next, prev, each slide. A page may have more then one slideshow, eachone working independently. Each slide can be bookmarked. The source images can be defined by JavaScript in slideshow options or by HTML placing images inside container. |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
16 |
* |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
17 |
* |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
18 |
* |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
19 |
* @name Slideshow |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
20 |
* @description Creates an image slideshow. The slideshow can autoplay slides, each image can have caption, navigation links: next, prev, each slide. A page may have more then one slideshow, eachone working independently. Each slide can be bookmarked. The source images can be defined by JavaScript in slideshow options or by HTML placing images inside container. |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
21 |
* @param Hash hash A hash of parameters |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
22 |
* @option String container container ID |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
23 |
* @option String loader path to loading indicator image |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
24 |
* @option String linksPosition (optional) images links position ['top'|'bottom'|null] |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
25 |
* @option String linksClass (optional) images links cssClass |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
26 |
* @option String linksSeparator (optional) images links separator |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
27 |
* @option Integer fadeDuration fade animation duration in miliseconds |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
28 |
* @option String activeLinkClass (optional) active image link CSS class |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
29 |
* @option String nextslideClass (optional) next image CSS class |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
30 |
* @option String prevslideClass (optional) previous image CSS class |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
31 |
* @option String captionPosition (optional) image caption position ['top'|'bottom'|null] |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
32 |
* @option String captionClass (optional) image caption CSS class |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
33 |
* @option String autoplay (optional) seconds to wait untill next images is displayed. This option will make the slideshow to autoplay. |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
34 |
* @option String random (optional) if slideshow autoplayes the images can be randomized |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
35 |
* @option Array images (optional) array of hash with keys 'src' (path to image) and 'cation' (image caption) for images |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
36 |
* |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
37 |
* @type jQuery |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
38 |
* @cat Plugins/Interface |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
39 |
* @author Stefan Petre |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
40 |
*/ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
41 |
jQuery.islideshow = { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
42 |
slideshows: [], |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
43 |
gonext : function() |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
44 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
45 |
this.blur(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
46 |
slideshow = this.parentNode; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
47 |
id = jQuery.attr(slideshow, 'id'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
48 |
if (jQuery.islideshow.slideshows[id] != null) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
49 |
window.clearInterval(jQuery.islideshow.slideshows[id]); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
50 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
51 |
slide = slideshow.ss.currentslide + 1; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
52 |
if (slideshow.ss.images.length < slide) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
53 |
slide = 1; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
54 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
55 |
images = jQuery('img', slideshow.ss.holder); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
56 |
slideshow.ss.currentslide = slide; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
57 |
if (images.size() > 0) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
58 |
images.fadeOut( |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
59 |
slideshow.ss.fadeDuration, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
60 |
jQuery.islideshow.showImage |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
61 |
); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
62 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
63 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
64 |
goprev : function() |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
65 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
66 |
this.blur(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
67 |
slideshow = this.parentNode; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
68 |
id = jQuery.attr(slideshow, 'id'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
69 |
if (jQuery.islideshow.slideshows[id] != null) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
70 |
window.clearInterval(jQuery.islideshow.slideshows[id]); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
71 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
72 |
slide = slideshow.ss.currentslide - 1; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
73 |
images = jQuery('img', slideshow.ss.holder); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
74 |
if (slide < 1) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
75 |
slide = slideshow.ss.images.length ; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
76 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
77 |
slideshow.ss.currentslide = slide; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
78 |
if (images.size() > 0) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
79 |
images.fadeOut( |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
80 |
slideshow.ss.fadeDuration, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
81 |
jQuery.islideshow.showImage |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
82 |
); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
83 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
84 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
85 |
timer : function (c) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
86 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
87 |
slideshow = document.getElementById(c); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
88 |
if (slideshow.ss.random) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
89 |
slide = slideshow.ss.currentslide; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
90 |
while(slide == slideshow.ss.currentslide) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
91 |
slide = 1 + parseInt(Math.random() * slideshow.ss.images.length); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
92 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
93 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
94 |
slide = slideshow.ss.currentslide + 1; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
95 |
if (slideshow.ss.images.length < slide) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
96 |
slide = 1; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
97 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
98 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
99 |
images = jQuery('img', slideshow.ss.holder); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
100 |
slideshow.ss.currentslide = slide; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
101 |
if (images.size() > 0) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
102 |
images.fadeOut( |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
103 |
slideshow.ss.fadeDuration, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
104 |
jQuery.islideshow.showImage |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
105 |
); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
106 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
107 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
108 |
go : function(o) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
109 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
110 |
var slideshow; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
111 |
if (o && o.constructor == Object) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
112 |
if (o.loader) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
113 |
slideshow = document.getElementById(o.loader.slideshow); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
114 |
url = window.location.href.split("#"); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
115 |
o.loader.onload = null; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
116 |
if (url.length == 2) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
117 |
slide = parseInt(url[1]); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
118 |
show = url[1].replace(slide,''); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
119 |
if (jQuery.attr(slideshow,'id') != show) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
120 |
slide = 1; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
121 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
122 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
123 |
slide = 1; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
124 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
125 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
126 |
if(o.link) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
127 |
o.link.blur(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
128 |
slideshow = o.link.parentNode.parentNode; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
129 |
id = jQuery.attr(slideshow, 'id'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
130 |
if (jQuery.islideshow.slideshows[id] != null) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
131 |
window.clearInterval(jQuery.islideshow.slideshows[id]); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
132 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
133 |
url = o.link.href.split("#"); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
134 |
slide = parseInt(url[1]); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
135 |
show = url[1].replace(slide,''); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
136 |
if (jQuery.attr(slideshow,'id') != show) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
137 |
slide = 1; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
138 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
139 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
140 |
if (slideshow.ss.images.length < slide || slide < 1) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
141 |
slide = 1; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
142 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
143 |
slideshow.ss.currentslide = slide; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
144 |
slidePos = jQuery.iUtil.getSize(slideshow); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
145 |
slidePad = jQuery.iUtil.getPadding(slideshow); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
146 |
slideBor = jQuery.iUtil.getBorder(slideshow); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
147 |
if (slideshow.ss.prevslide) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
148 |
slideshow.ss.prevslide.o.css('display', 'none'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
149 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
150 |
if (slideshow.ss.nextslide) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
151 |
slideshow.ss.nextslide.o.css('display', 'none'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
152 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
153 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
154 |
//center loader |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
155 |
if (slideshow.ss.loader) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
156 |
y = parseInt(slidePad.t) + parseInt(slideBor.t); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
157 |
if (slideshow.ss.slideslinks) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
158 |
if (slideshow.ss.slideslinks.linksPosition == 'top') { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
159 |
y += slideshow.ss.slideslinks.dimm.hb; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
160 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
161 |
slidePos.h -= slideshow.ss.slideslinks.dimm.hb; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
162 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
163 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
164 |
if (slideshow.ss.slideCaption) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
165 |
if (slideshow.ss.slideCaption && slideshow.ss.slideCaption.captionPosition == 'top') { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
166 |
y += slideshow.ss.slideCaption.dimm.hb; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
167 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
168 |
slidePos.h -= slideshow.ss.slideCaption.dimm.hb; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
169 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
170 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
171 |
if (!slideshow.ss.loaderWidth) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
172 |
slideshow.ss.loaderHeight = o.loader ? o.loader.height : (parseInt(slideshow.ss.loader.css('height'))||0); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
173 |
slideshow.ss.loaderWidth = o.loader ? o.loader.width : (parseInt(slideshow.ss.loader.css('width'))||0); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
174 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
175 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
176 |
slideshow.ss.loader.css('top', y + (slidePos.h - slideshow.ss.loaderHeight)/2 + 'px'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
177 |
slideshow.ss.loader.css('left', (slidePos.wb - slideshow.ss.loaderWidth)/2 + 'px'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
178 |
slideshow.ss.loader.css('display', 'block'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
179 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
180 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
181 |
//getimage |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
182 |
images = jQuery('img', slideshow.ss.holder); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
183 |
if (images.size() > 0) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
184 |
images.fadeOut( |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
185 |
slideshow.ss.fadeDuration, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
186 |
jQuery.islideshow.showImage |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
187 |
); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
188 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
189 |
lnk = jQuery('a', slideshow.ss.slideslinks.o).get(slide-1); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
190 |
jQuery(lnk).addClass(slideshow.ss.slideslinks.activeLinkClass); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
191 |
var img = new Image(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
192 |
img.slideshow = jQuery.attr(slideshow,'id'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
193 |
img.slide = slide-1; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
194 |
img.src = slideshow.ss.images[slideshow.ss.currentslide-1].src ; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
195 |
if (img.complete) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
196 |
img.onload = null; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
197 |
jQuery.islideshow.display.apply(img); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
198 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
199 |
img.onload = jQuery.islideshow.display; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
200 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
201 |
//slideshow.ss.holder.html('<img src="' + slideshow.ss.images[slide-1].src + '" />'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
202 |
if (slideshow.ss.slideCaption) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
203 |
slideshow.ss.slideCaption.o.html(slideshow.ss.images[slide-1].caption); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
204 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
205 |
//jQuery('img', slideshow.ss.holder).bind('load',jQuery.slideshowDisplay); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
206 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
207 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
208 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
209 |
showImage : function() |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
210 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
211 |
slideshow = this.parentNode.parentNode; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
212 |
slideshow.ss.holder.css('display','none'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
213 |
if (slideshow.ss.slideslinks.activeLinkClass) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
214 |
lnk = jQuery('a', slideshow.ss.slideslinks.o).removeClass(slideshow.ss.slideslinks.activeLinkClass).get(slideshow.ss.currentslide - 1); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
215 |
jQuery(lnk).addClass(slideshow.ss.slideslinks.activeLinkClass); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
216 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
217 |
//slideshow.ss.holder.html('<img src="' + slideshow.ss.images[slideshow.ss.currentslide - 1].src + '" />'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
218 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
219 |
var img = new Image(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
220 |
img.slideshow = jQuery.attr(slideshow,'id'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
221 |
img.slide = slideshow.ss.currentslide - 1; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
222 |
img.src = slideshow.ss.images[slideshow.ss.currentslide - 1].src ; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
223 |
if (img.complete) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
224 |
img.onload = null; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
225 |
jQuery.islideshow.display.apply(img); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
226 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
227 |
img.onload = jQuery.islideshow.display; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
228 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
229 |
if (slideshow.ss.slideCaption) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
230 |
slideshow.ss.slideCaption.o.html(slideshow.ss.images[slideshow.ss.currentslide-1].caption); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
231 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
232 |
//jQuery('img', slideshow.ss.holder).bind('load',jQuery.slideshowDisplay); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
233 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
234 |
display : function () |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
235 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
236 |
slideshow = document.getElementById(this.slideshow); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
237 |
if (slideshow.ss.prevslide) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
238 |
slideshow.ss.prevslide.o.css('display', 'none'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
239 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
240 |
if (slideshow.ss.nextslide) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
241 |
slideshow.ss.nextslide.o.css('display', 'none'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
242 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
243 |
slidePos = jQuery.iUtil.getSize(slideshow); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
244 |
y = 0; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
245 |
if (slideshow.ss.slideslinks) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
246 |
if (slideshow.ss.slideslinks.linksPosition == 'top') { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
247 |
y += slideshow.ss.slideslinks.dimm.hb; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
248 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
249 |
slidePos.h -= slideshow.ss.slideslinks.dimm.hb; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
250 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
251 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
252 |
if (slideshow.ss.slideCaption) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
253 |
if (slideshow.ss.slideCaption && slideshow.ss.slideCaption.captionPosition == 'top') { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
254 |
y += slideshow.ss.slideCaption.dimm.hb; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
255 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
256 |
slidePos.h -= slideshow.ss.slideCaption.dimm.hb; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
257 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
258 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
259 |
par = jQuery('.slideshowHolder', slideshow); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
260 |
y = y + (slidePos.h - this.height)/2 ; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
261 |
x = (slidePos.wb - this.width)/2; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
262 |
slideshow.ss.holder.css('top', y + 'px').css('left', x + 'px').html('<img src="' + this.src + '" />'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
263 |
slideshow.ss.holder.fadeIn(slideshow.ss.fadeDuration); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
264 |
nextslide = slideshow.ss.currentslide + 1; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
265 |
if (nextslide > slideshow.ss.images.length) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
266 |
nextslide = 1; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
267 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
268 |
prevslide = slideshow.ss.currentslide - 1; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
269 |
if (prevslide < 1) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
270 |
prevslide = slideshow.ss.images.length; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
271 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
272 |
slideshow.ss.nextslide.o |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
273 |
.css('display','block') |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
274 |
.css('top', y + 'px') |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
275 |
.css('left', x + 2 * this.width/3 + 'px') |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
276 |
.css('width', this.width/3 + 'px') |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
277 |
.css('height', this.height + 'px') |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
278 |
.attr('title', slideshow.ss.images[nextslide-1].caption); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
279 |
slideshow.ss.nextslide.o.get(0).href = '#' + nextslide + jQuery.attr(slideshow, 'id'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
280 |
slideshow.ss.prevslide.o |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
281 |
.css('display','block') |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
282 |
.css('top', y + 'px') |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
283 |
.css('left', x + 'px') |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
284 |
.css('width', this.width/3 + 'px') |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
285 |
.css('height', this.height + 'px') |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
286 |
.attr('title', slideshow.ss.images[prevslide-1].caption); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
287 |
slideshow.ss.prevslide.o.get(0).href = '#' + prevslide + jQuery.attr(slideshow, 'id'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
288 |
}, |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
289 |
build : function(o) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
290 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
291 |
if (!o || !o.container || jQuery.islideshow.slideshows[o.container]) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
292 |
return; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
293 |
var container = jQuery('#' + o.container); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
294 |
var el = container.get(0); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
295 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
296 |
if (el.style.position != 'absolute' && el.style.position != 'relative') { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
297 |
el.style.position = 'relative'; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
298 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
299 |
el.style.overflow = 'hidden'; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
300 |
if (container.size() == 0) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
301 |
return; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
302 |
el.ss = {}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
303 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
304 |
el.ss.images = o.images ? o.images : []; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
305 |
el.ss.random = o.random && o.random == true || false; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
306 |
imgs = el.getElementsByTagName('IMG'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
307 |
for(i = 0; i< imgs.length; i++) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
308 |
indic = el.ss.images.length; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
309 |
el.ss.images[indic] = {src:imgs[i].src, caption:imgs[i].title||imgs[i].alt||''}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
310 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
311 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
312 |
if (el.ss.images.length == 0) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
313 |
return; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
314 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
315 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
316 |
el.ss.oP = jQuery.extend( |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
317 |
jQuery.iUtil.getPosition(el), |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
318 |
jQuery.iUtil.getSize(el) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
319 |
); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
320 |
el.ss.oPad = jQuery.iUtil.getPadding(el); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
321 |
el.ss.oBor = jQuery.iUtil.getBorder(el); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
322 |
t = parseInt(el.ss.oPad.t) + parseInt(el.ss.oBor.t); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
323 |
b = parseInt(el.ss.oPad.b) + parseInt(el.ss.oBor.b); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
324 |
jQuery('img', el).remove(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
325 |
el.ss.fadeDuration = o.fadeDuration ? o.fadeDuration : 500; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
326 |
if (o.linksPosition || o.linksClass || o.activeLinkClass) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
327 |
el.ss.slideslinks = {}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
328 |
container.append('<div class="slideshowLinks"></div>'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
329 |
el.ss.slideslinks.o = jQuery('.slideshowLinks', el); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
330 |
if (o.linksClass) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
331 |
el.ss.slideslinks.linksClass = o.linksClass; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
332 |
el.ss.slideslinks.o.addClass(o.linksClass); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
333 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
334 |
if (o.activeLinkClass) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
335 |
el.ss.slideslinks.activeLinkClass = o.activeLinkClass; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
336 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
337 |
el.ss.slideslinks.o.css('position','absolute').css('width', el.ss.oP.w + 'px'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
338 |
if (o.linksPosition && o.linksPosition == 'top') { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
339 |
el.ss.slideslinks.linksPosition = 'top'; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
340 |
el.ss.slideslinks.o.css('top',t + 'px'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
341 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
342 |
el.ss.slideslinks.linksPosition = 'bottom'; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
343 |
el.ss.slideslinks.o.css('bottom',b + 'px'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
344 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
345 |
el.ss.slideslinks.linksSeparator = o.linksSeparator ? o.linksSeparator : ' '; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
346 |
for (var i=0; i<el.ss.images.length; i++) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
347 |
indic = parseInt(i) + 1; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
348 |
el.ss.slideslinks.o.append('<a href="#' + indic + o.container + '" class="slideshowLink" title="' + el.ss.images[i].caption + '">' + indic + '</a>' + (indic != el.ss.images.length ? el.ss.slideslinks.linksSeparator : '')); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
349 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
350 |
jQuery('a', el.ss.slideslinks.o).bind( |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
351 |
'click', |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
352 |
function() |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
353 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
354 |
jQuery.islideshow.go({link:this}) |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
355 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
356 |
); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
357 |
el.ss.slideslinks.dimm = jQuery.iUtil.getSize(el.ss.slideslinks.o.get(0)); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
358 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
359 |
if (o.captionPosition || o.captionClass) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
360 |
el.ss.slideCaption = {}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
361 |
container.append('<div class="slideshowCaption"> </div>'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
362 |
el.ss.slideCaption.o = jQuery('.slideshowCaption', el); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
363 |
if (o.captionClass) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
364 |
el.ss.slideCaption.captionClass = o.captionClass; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
365 |
el.ss.slideCaption.o.addClass(o.captionClass); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
366 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
367 |
el.ss.slideCaption.o.css('position','absolute').css('width', el.ss.oP.w + 'px'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
368 |
if (o.captionPosition&& o.captionPosition == 'top') { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
369 |
el.ss.slideCaption.captionPosition = 'top'; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
370 |
el.ss.slideCaption.o.css('top', (el.ss.slideslinks && el.ss.slideslinks.linksPosition == 'top' ? el.ss.slideslinks.dimm.hb + t : t) + 'px'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
371 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
372 |
el.ss.slideCaption.captionPosition = 'bottom'; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
373 |
el.ss.slideCaption.o.css('bottom', (el.ss.slideslinks && el.ss.slideslinks.linksPosition == 'bottom' ? el.ss.slideslinks.dimm.hb + b : b) + 'px'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
374 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
375 |
el.ss.slideCaption.dimm = jQuery.iUtil.getSize(el.ss.slideCaption.o.get(0)); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
376 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
377 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
378 |
if (o.nextslideClass) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
379 |
el.ss.nextslide = {nextslideClass:o.nextslideClass}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
380 |
container.append('<a href="#2' + o.container + '" class="slideshowNextSlide"> </a>'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
381 |
el.ss.nextslide.o = jQuery('.slideshowNextSlide', el); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
382 |
el.ss.nextslide.o.css('position', 'absolute').css('display', 'none').css('overflow','hidden').css('fontSize', '30px').addClass(el.ss.nextslide.nextslideClass); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
383 |
el.ss.nextslide.o.bind('click', jQuery.islideshow.gonext); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
384 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
385 |
if (o.prevslideClass) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
386 |
el.ss.prevslide= {prevslideClass:o.prevslideClass}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
387 |
container.append('<a href="#0' + o.container + '" class="slideshowPrevslide"> </a>'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
388 |
el.ss.prevslide.o = jQuery('.slideshowPrevslide', el); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
389 |
el.ss.prevslide.o.css('position', 'absolute').css('display', 'none').css('overflow','hidden').css('fontSize', '30px').addClass(el.ss.prevslide.prevslideClass); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
390 |
el.ss.prevslide.o.bind('click', jQuery.islideshow.goprev); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
391 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
392 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
393 |
container.prepend('<div class="slideshowHolder"></div>'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
394 |
el.ss.holder = jQuery('.slideshowHolder', el); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
395 |
el.ss.holder.css('position','absolute').css('top','0px').css('left','0px').css('display', 'none'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
396 |
if (o.loader) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
397 |
container.prepend('<div class="slideshowLoader" style="display: none;"><img src="' + o.loader + '" /></div>'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
398 |
el.ss.loader = jQuery('.slideshowLoader', el); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
399 |
el.ss.loader.css('position', 'absolute'); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
400 |
var img = new Image(); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
401 |
img.slideshow = o.container; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
402 |
img.src = o.loader; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
403 |
if (img.complete) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
404 |
img.onload = null; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
405 |
jQuery.islideshow.go({loader:img}); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
406 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
407 |
img.onload = function() |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
408 |
{ |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
409 |
jQuery.islideshow.go({loader:this}); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
410 |
}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
411 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
412 |
} else { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
413 |
jQuery.islideshow.go({container:el}); |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
414 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
415 |
|
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
416 |
if(o.autoplay) { |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
417 |
time = parseInt(o.autoplay) * 1000; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
418 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
419 |
jQuery.islideshow.slideshows[o.container] = o.autoplay ? window.setInterval('jQuery.islideshow.timer(\'' + o.container + '\')', time) : null; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
420 |
} |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
421 |
}; |
Samuel Huron <samuel.huron@centrepompidou.fr>
parents:
diff
changeset
|
422 |
jQuery.slideshow = jQuery.islideshow.build; |