PageSourceSearch

https://mundoinsolitoradio.es/assets/js/main.js

js mundoinsolitoradio.es collected 2026-10-04 13:29:45 UTC 5,968 bytes, 262 lines download raw bytes

1/*
2	Editorial by HTML5 UP
3	html5up.net | @ajlkn
4	Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
5*/
6
7(function($) {
8
9	var	$window = $(window),
10		$head = $('head'),
11		$body = $('body');
12
13	// Breakpoints.
14		breakpoints({
15			xlarge:   [ '1281px',  '1680px' ],
16			large:    [ '981px',   '1280px' ],
17			medium:   [ '737px',   '980px'  ],
18			small:    [ '481px',   '736px'  ],
19			xsmall:   [ '361px',   '480px'  ],
20			xxsmall:  [ null,      '360px'  ],
21			'xlarge-to-max':    '(min-width: 1681px)',
22			'small-to-xlarge':  '(min-width: 481px) and (max-width: 1680px)'
23		});
24
25	// Stops animations/transitions until the page has ...
26
27		// ... loaded.
28			$window.on('load', function() {
29				window.setTimeout(function() {
30					$body.removeClass('is-preload');
31				}, 100);
32			});
33
34		// ... stopped resizing.
35			var resizeTimeout;
36
37			$window.on('resize', function() {
38
39				// Mark as resizing.
40					$body.addClass('is-resizing');
41
42				// Unmark after delay.
43					clearTimeout(resizeTimeout);
44
45					resizeTimeout = setTimeout(function() {
46						$body.removeClass('is-resizing');
47					}, 100);
48
49			});
50
51	// Fixes.
52
53		// Object fit images.
54			if (!browser.canUse('object-fit')
55			||	browser.name == 'safari')
56				$('.image.object').each(function() {
57
58					var $this = $(this),
59						$img = $this.children('img');
60
61					// Hide original image.
62						$img.css('opacity', '0');
63
64					// Set background.
65						$this
66							.css('background-image', 'url("' + $img.attr('src') + '")')
67							.css('background-size', $img.css('object-fit') ? $img.css('object-fit') : 'cover')
68							.css('background-position', $img.css('object-position') ? $img.css('object-position') : 'center');
69
70				});
71
72	// Sidebar.
73		var $sidebar = $('#sidebar'),
74			$sidebar_inner = $sidebar.children('.inner');
75
76		// Inactive by default on <= large.
77			breakpoints.on('<=large', function() {
78				$sidebar.addClass('inactive');
79			});
80
81			breakpoints.on('>large', function() {
82				$sidebar.removeClass('inactive');
83			});
84
85		// Hack: Workaround for Chrome/Android scrollbar position bug.
86			if (browser.os == 'android'
87			&&	browser.name == 'chrome')
88				$('<style>#sidebar .inner::-webkit-scrollbar { display: none; }</style>')
89					.appendTo($head);
90
91		// Toggle.
92			$('<a href="#sidebar" class="toggle">Toggle</a>')
93				.appendTo($sidebar)
94				.on('click', function(event) {
95
96					// Prevent default.
97						event.preventDefault();
98						event.stopPropagation();
99
100					// Toggle.
101						$sidebar.toggleClass('inactive');
102
103				});
104
105		// Events.
106
107			// Link clicks.
108				$sidebar.on('click', 'a', function(event) {
109
110					// >large? Bail.
111						if (breakpoints.active('>large'))
112							return;
113
114					// Vars.
115						var $a = $(this),
116							href = $a.attr('href'),
117							target = $a.attr('target');
118
119					// Prevent default.
120						event.preventDefault();
121						event.stopPropagation();
122
123					// Check URL.
124						if (!href || href == '#' || href == '')
125							return;
126
127					// Hide sidebar.
128						$sidebar.addClass('inactive');
129
130					// Redirect to href.
131						setTimeout(function() {
132
133							if (target == '_blank')
134								window.open(href);
135							else
136								window.location.href = href;
137
138						}, 500);
139
140				});
141
142			// Prevent certain events inside the panel from bubbling.
143				$sidebar.on('click touchend touchstart touchmove', function(event) {
144
145					// >large? Bail.
146						if (breakpoints.active('>large'))
147							return;
148
149					// Prevent propagation.
150						event.stopPropagation();
151
152				});
153
154			// Hide panel on body click/tap.
155				$body.on('click touchend', function(event) {
156
157					// >large? Bail.
158						if (breakpoints.active('>large'))
159							return;
160
161					// Deactivate.
162						$sidebar.addClass('inactive');
163
164				});
165
166		// Scroll lock.
167		// Note: If you do anything to change the height of the sidebar's content, be sure to
168		// trigger 'resize.sidebar-lock' on $window so stuff doesn't get out of sync.
169
170			$window.on('load.sidebar-lock', function() {
171
172				var sh, wh, st;
173
174				// Reset scroll position to 0 if it's 1.
175					if ($window.scrollTop() == 1)
176						$window.scrollTop(0);
177
178				$window
179					.on('scroll.sidebar-lock', function() {
180
181						var x, y;
182
183						// <=large? Bail.
184							if (breakpoints.active('<=large')) {
185
186								$sidebar_inner
187									.data('locked', 0)
188									.css('position', '')
189									.css('top', '');
190
191								return;
192
193							}
194
195						// Calculate positions.
196							x = Math.max(sh - wh, 0);
197							y = Math.max(0, $window.scrollTop() - x);
198
199						// Lock/unlock.
200							if ($sidebar_inner.data('locked') == 1) {
201
202								if (y <= 0)
203									$sidebar_inner
204										.data('locked', 0)
205										.css('position', '')
206										.css('top', '');
207								else
208									$sidebar_inner
209										.css('top', -1 * x);
210
211							}
212							else {
213
214								if (y > 0)
215									$sidebar_inner
216										.data('locked', 1)
217										.css('position', 'fixed')
218										.css('top', -1 * x);
219
220							}
221
222					})
223					.on('resize.sidebar-lock', function() {
224
225						// Calculate heights.
226							wh = $window.height();
227							sh = $sidebar_inner.outerHeight() + 30;
228
229						// Trigger scroll.
230							$window.trigger('scroll.sidebar-lock');
231
232					})
233					.trigger('resize.sidebar-lock');
234
235				});
236
237	// Menu.
238		var $menu = $('#menu'),
239			$menu_openers = $menu.children('ul').find('.opener');
240
241		// Openers.
242			$menu_openers.each(function() {
243
244				var $this = $(this);
245
246				$this.on('click', function(event) {
247
248					// Prevent default.
249						event.preventDefault();
250
251					// Toggle.
252						$menu_openers.not($this).removeClass('active');
253						$this.toggleClass('active');
254
255					// Trigger resize (sidebar lock).
256						$window.triggerHandler('resize.sidebar-lock');
257
258				});
259
260			});
261
262})(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.