PageSourceSearch

http://www.omniaenergia.it/wp-content/themes/oe_corporate/js/home-offers-slider.js?ver=1785232767

js omniaenergia.it collected 2026-09-24 12:43:54 UTC 2,301 bytes, 75 lines download raw bytes

1/**
2 * Init del carosello offerte in home.
3 * Monta Slick su .oe-offers-slider__track: 1 slide, solo dots, autoplay lento.
4 * Degrado: se Slick non è disponibile o le slide sono < 2, non fa nulla e le
5 * slide restano impilate (vedi CSS). La classe --js viene aggiunta SOLO nel
6 * ramo che monta davvero Slick, così senza Slick le slide restano tutte visibili.
7 */
8( function () {
9	'use strict';
10
11	if ( ! window.jQuery ) {
12		return;
13	}
14
15	var $ = window.jQuery;
16
17	// Fa (ri)partire l'animazione del badge sulla slide attiva.
18	// Toglie la classe da tutti i badge, forza un reflow, poi la applica alla slick-current.
19	function animateActiveBadge( $slider ) {
20		$slider.find( '.oe-hslide__badge' ).removeClass( 'oe-badge-animate' );
21		var $current = $slider.find( '.slick-current .oe-hslide__badge' );
22		if ( $current.length ) {
23			void $current[ 0 ].offsetWidth; // reflow: rende ripetibile l'animazione CSS
24			$current.addClass( 'oe-badge-animate' );
25		}
26	}
27
28	function initSlider() {
29		var $track = $( '.oe-offers-slider__track' );
30		if ( ! $track.length ) {
31			return;
32		}
33		// Con una sola slide il carosello non serve: la lascio statica ma animo il badge una volta.
34		if ( $track.children( '.oe-offers-slider__slide' ).length < 2 ) {
35			$track.find( '.oe-hslide__badge' ).first().addClass( 'oe-badge-animate' );
36			return;
37		}
38		$track.closest( '.oe-offers-slider' ).addClass( 'oe-offers-slider--js' );
39		// I due handler vanno legati PRIMA di .slick(): 'init' scatta solo se già in ascolto.
40		$track.on( 'init', function () {
41			animateActiveBadge( $track );
42		} );
43		$track.on( 'afterChange', function () {
44			animateActiveBadge( $track );
45		} );
46		$track.slick( {
47			slidesToShow: 1,
48			slidesToScroll: 1,
49			dots: true,
50			arrows: false,
51			autoplay: true,
52			autoplaySpeed: 6000,
53			pauseOnHover: true,
54			adaptiveHeight: true
55		} );
56	}
57
58	$( function () {
59		if ( typeof $.fn.slick === 'function' ) {
60			initSlider();
61			return;
62		}
63		// Slick non ancora pronto: attendo brevemente (rete di sicurezza sull'ordine di caricamento).
64		var tries = 0;
65		var timer = setInterval( function () {
66			tries++;
67			if ( typeof $.fn.slick === 'function' ) {
68				clearInterval( timer );
69				initSlider();
70			} else if ( tries > 40 ) { // ~2 secondi
71				clearInterval( timer );
72			}
73		}, 50 );
74	} );
75}() );

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.