PageSourceSearch

https://hvnh.edu.vn/plugins/fancybox/source/helpers/jquery.fancybox-buttons.js?v=1.0.5

js hvnh.edu.vn collected 2026-09-24 10:06:22 UTC 3,041 bytes, 122 lines download raw bytes

vendor: 3,041 bytes, lines 1-122
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));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.