Mercurial > public > madeira
comparison static/js/fancybox2/source/helpers/jquery.fancybox-buttons.js @ 106:846cda22d77c
Bootstrap: Photo pages reworked.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Fri, 18 Oct 2013 20:31:36 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
105:afcbfe23f068 | 106:846cda22d77c |
---|---|
1 /*! | |
2 * Buttons helper for fancyBox | |
3 * version: 1.0.5 (Mon, 15 Oct 2012) | |
4 * @requires fancyBox v2.0 or later | |
5 * | |
6 * Usage: | |
7 * $(".fancybox").fancybox({ | |
8 * helpers : { | |
9 * buttons: { | |
10 * position : 'top' | |
11 * } | |
12 * } | |
13 * }); | |
14 * | |
15 */ | |
16 (function ($) { | |
17 //Shortcut for fancyBox object | |
18 var F = $.fancybox; | |
19 | |
20 //Add helper object | |
21 F.helpers.buttons = { | |
22 defaults : { | |
23 skipSingle : false, // disables if gallery contains single image | |
24 position : 'top', // 'top' or 'bottom' | |
25 tpl : '<div id="fancybox-buttons"><ul><li><a class="btnPrev" title="Previous" href="javascript:;"></a></li><li><a class="btnPlay" title="Start slideshow" href="javascript:;"></a></li><li><a class="btnNext" title="Next" href="javascript:;"></a></li><li><a class="btnToggle" title="Toggle size" href="javascript:;"></a></li><li><a class="btnClose" title="Close" href="javascript:;"></a></li></ul></div>' | |
26 }, | |
27 | |
28 list : null, | |
29 buttons: null, | |
30 | |
31 beforeLoad: function (opts, obj) { | |
32 //Remove self if gallery do not have at least two items | |
33 | |
34 if (opts.skipSingle && obj.group.length < 2) { | |
35 obj.helpers.buttons = false; | |
36 obj.closeBtn = true; | |
37 | |
38 return; | |
39 } | |
40 | |
41 //Increase top margin to give space for buttons | |
42 obj.margin[ opts.position === 'bottom' ? 2 : 0 ] += 30; | |
43 }, | |
44 | |
45 onPlayStart: function () { | |
46 if (this.buttons) { | |
47 this.buttons.play.attr('title', 'Pause slideshow').addClass('btnPlayOn'); | |
48 } | |
49 }, | |
50 | |
51 onPlayEnd: function () { | |
52 if (this.buttons) { | |
53 this.buttons.play.attr('title', 'Start slideshow').removeClass('btnPlayOn'); | |
54 } | |
55 }, | |
56 | |
57 afterShow: function (opts, obj) { | |
58 var buttons = this.buttons; | |
59 | |
60 if (!buttons) { | |
61 this.list = $(opts.tpl).addClass(opts.position).appendTo('body'); | |
62 | |
63 buttons = { | |
64 prev : this.list.find('.btnPrev').click( F.prev ), | |
65 next : this.list.find('.btnNext').click( F.next ), | |
66 play : this.list.find('.btnPlay').click( F.play ), | |
67 toggle : this.list.find('.btnToggle').click( F.toggle ), | |
68 close : this.list.find('.btnClose').click( F.close ) | |
69 } | |
70 } | |
71 | |
72 //Prev | |
73 if (obj.index > 0 || obj.loop) { | |
74 buttons.prev.removeClass('btnDisabled'); | |
75 } else { | |
76 buttons.prev.addClass('btnDisabled'); | |
77 } | |
78 | |
79 //Next / Play | |
80 if (obj.loop || obj.index < obj.group.length - 1) { | |
81 buttons.next.removeClass('btnDisabled'); | |
82 buttons.play.removeClass('btnDisabled'); | |
83 | |
84 } else { | |
85 buttons.next.addClass('btnDisabled'); | |
86 buttons.play.addClass('btnDisabled'); | |
87 } | |
88 | |
89 this.buttons = buttons; | |
90 | |
91 this.onUpdate(opts, obj); | |
92 }, | |
93 | |
94 onUpdate: function (opts, obj) { | |
95 var toggle; | |
96 | |
97 if (!this.buttons) { | |
98 return; | |
99 } | |
100 | |
101 toggle = this.buttons.toggle.removeClass('btnDisabled btnToggleOn'); | |
102 | |
103 //Size toggle button | |
104 if (obj.canShrink) { | |
105 toggle.addClass('btnToggleOn'); | |
106 | |
107 } else if (!obj.canExpand) { | |
108 toggle.addClass('btnDisabled'); | |
109 } | |
110 }, | |
111 | |
112 beforeClose: function () { | |
113 if (this.list) { | |
114 this.list.remove(); | |
115 } | |
116 | |
117 this.list = null; | |
118 this.buttons = null; | |
119 } | |
120 }; | |
121 | |
122 }(jQuery)); |