PageSourceSearch

https://udc.gal/export/system/modules/es.udc.webcorp.template/resources/home/js/plugins_stop.js

js udc.gal collected 2026-10-01 11:41:11 UTC 9,253 bytes, 260 lines download raw bytes

1
2// Place any jQuery/helper plugins in here.
3var slideManager = function () {
4
5    var self = this;
6
7    var autoChangeTimeMs = 15000;
8
9    self.autoChange = null;
10
11
12    self._getSliderSize = function () {
13        return $('.slider .slide').length;
14    }
15    self._getActiveSlide = function () {
16        return $('.slider .slides .slide.active').data('index');
17
18    }
19
20    self._setNavigation = function () {
21        var size = self._getSliderSize();
22        var index = self._getActiveSlide();
23        var tl = new TimelineLite();
24        if (size > 1) {
25            if (index == 1) {
26                tl.to(self.config.prev, 0.5, { opacity: 0, ease: Power3.easeInOut })
27                    .set(self.config.prev, { display: 'none' })
28                    .set(self.config.next, { display: 'block' })
29                    .to(self.config.next, 0.5, { opacity: 1, ease: Power3.easeInOut });
30            } else if (index == size) {
31                tl.to(self.config.next, 0.5, { opacity: 0, ease: Power3.easeInOut })
32                    .set(self.config.next, { display: 'none' })
33                    .set(self.config.prev, { display: 'block' })
34                    .to(self.config.prev, 0.5, { opacity: 1, ease: Power3.easeInOut });
35            } else {
36                tl.set(self.config.next, { display: 'block' })
37                    .to(self.config.next, 0.5, { opacity: 1, ease: Power3.easeInOut })
38                    .set(self.config.prev, { display: 'block' })
39                    .to(self.config.prev, 0.5, { opacity: 1, ease: Power3.easeInOut });
40            }
41        } else {
42            TweenLite.set(self.config.next, { display: 'none' });
43            TweenLite.set(self.config.prev, { display: 'none' });
44        }        
45    }
46
47    self._goToSlide = function (slideOut, slideIn, forward) {
48        var tl = new TimelineLite();
49        var sliderContainer = slideIn.parents(".viewpart.slider");
50        var head = sliderContainer.find(".head");
51        var hamburguer = sliderContainer.find(".hamburger-topmenu");
52        var sliderButtons = $('#slider-content-wrapper');
53        var isInverseSlide = slideIn.hasClass("inverse");
54        // go to the next slide timeline        
55        if (slideIn.length !== 0) {
56            tl
57                .set(slideIn, { x: forward ? '100%' : '-100%', autoAlpha: 1, className: '+=active' })
58                .set(slideOut, { className: '-=active' })
59                .to(slideOut, 2, { x: forward ? '-100%' : '100%', ease: Power3.easeInOut }, 0)
60                .to(head, 0.5, { opacity: 0 }, 0.5)
61                .set(sliderButtons, { className: (isInverseSlide ? "+=inverse" : "-=inverse") }, 0.75)
62                .set(sliderContainer, { className: (isInverseSlide ? "+=inverse" : "-=inverse") }, 0.75)
63                .set(hamburguer, { className: (isInverseSlide ? "+=inverse" : "-=inverse") }, 0.75)
64                .to(slideIn, 2, { x: forward ? '-=100%' : '+=100%', ease: Power3.easeInOut }, 0)
65                .to(head, 1, { opacity: 1 }, 2);
66        }
67        self._setNavigation();
68
69    }
70
71    self._getAnimationHandler = function ($slide) {
72        return eval($slide.data("animationscript"));
73    }
74
75    self._animationStopAndGo = function(slideOut, slideIn) {
76        if (slideOut.hasClass('has-animation')) {
77            self._getAnimationHandler(slideOut).stop();
78        }
79        if (slideIn.hasClass('has-animation')) {
80            self._getAnimationHandler(slideIn).start();
81        }
82    }
83
84    self._startAutoChange = function() {
85        self._stopAutoChange();
86        // Se comenta esta linea para que no arranque (Stop)
87        // self.autoChange = setInterval(self.goToNextSlide, autoChangeTimeMs);
88    }
89
90    self._stopAutoChange = function() {
91        if (self.autoChange) {
92            clearInterval(self.autoChange);
93        }
94    }
95
96    self.goToPrevSlide = function () {
97        var slideOut = $('.slide.active'),
98            slideIn = $('.slide.active').prev('.slide');
99        self._goToSlide(slideOut, slideIn, false);
100        self._animationStopAndGo(slideOut, slideIn);
101    }
102
103    self.goToNextSlide = function () {
104        var sliderSize = self._getSliderSize();
105        var activeSlider = self._getActiveSlide();
106        var slideOut = $('.slide.active');
107        slideIn = (activeSlider==sliderSize) ? slideIn = $('.slider .slides .slide').first() : $('.slide.active').next('.slide');
108        self._goToSlide(slideOut, slideIn, true);
109        self._animationStopAndGo(slideOut, slideIn);
110    }
111
112
113    self.init = function (config) {
114        self.config = config;
115        var $slider = $(".slider");
116        var $slides = $(".slide");
117
118        // Set random slide
119        // var random = Math.floor(Math.random() * 1000);
120        //$slides.eq(random % $slides.length).addClass("active");       
121        $(".slide-0").addClass("active");
122        var $activeSlide = $(".slide.active");
123
124        // Initialize video slides
125        videoBackground.init();
126
127        // Hide all slides apart from the active one
128        TweenMax.set($slides.not($activeSlide), { autoAlpha: 0 });
129        self._setNavigation();
130
131        config.prev.find('button').click(function (e) {
132            e.preventDefault();
133            self.goToPrevSlide();
134        });
135
136        config.next.find('button').click(function (e) {
137            e.preventDefault();
138            self.goToNextSlide();
139        });
140
141        $('.slide .inner-slide').hammer().on("swipeleft", function (e) {
142            console.info("Swipe left", e);
143            self.goToNextSlide();
144            e.preventDefault();
145        });
146        $('.slide .inner-slide').hammer().on("swiperight", function (e) {
147            console.info("Swipe right", e);
148            e.preventDefault();
149            self.goToPrevSlide();
150        });
151
152        var sliderContainer = $activeSlide.parents(".viewpart.slider");
153        var hamburguer = $(".hamburger-topmenu");
154        var sliderButtons = $('#slider-content-wrapper');
155        var isInverseSlide = $activeSlide.hasClass("inverse");
156
157        if (isInverseSlide) {
158            sliderButtons.addClass('inverse');
159            sliderContainer.addClass('inverse');
160            hamburguer.addClass('inverse');
161        }
162
163        //Initialize animated slides
164        $(".slide.has-animation").each(function () {
165            self._getAnimationHandler($(this)).init();
166        });
167        if ($activeSlide.hasClass("has-animation")) {
168            self._getAnimationHandler($activeSlide).start();
169        }
170
171        //Autochange slider
172        _startAutoChange();
173
174        // Stop autochange when mouse enter slider box 
175        $(".slider a, .slider button").mouseenter(function() {
176            self._stopAutoChange();
177        })
178
179        // Start autochange when mouse leave slider box 
180        $(".slider a, .slider button").mouseleave(function() {
181            self._startAutoChange();
182        })
183
184    }
185    return {
186        init: self.init,
187        goToNextSlide: self.goToNextSlide,
188        goToPrevSlide: self.goToPrevSlide
189    }
190}();
191
192var videoBackground = function () {
193    var self = this;
194    self.min_w = 300;
195
196    self.init = function () {
197        $(window).resize(function () {
198            $('.video-viewport').each(function () {
199                var viewport = $(this);
200                var video = viewport.find('video');
201                var vid_w_orig = parseInt(video.attr('width'));
202                var vid_h_orig = parseInt(video.attr('height'));
203                resizeToCover(viewport, video, vid_w_orig, vid_h_orig);
204            });
205        });
206        $(window).trigger('resize');
207    }
208
209    function resizeToCover(viewport, video, vid_w_orig, vid_h_orig) {
210
211        // set the video viewport to the window size
212        viewport.width($(window).width());
213        viewport.height($(window).height());
214
215        // use largest scale factor of horizontal/vertical
216        var scale_h = $(window).width() / vid_w_orig;
217        var scale_v = $(window).height() / vid_h_orig;
218        var scale = scale_h > scale_v ? scale_h : scale_v;
219
220        // don't allow scaled width < minimum video width
221        if (scale * vid_w_orig < self.min_w) {
222            scale = self.min_w / vid_w_orig;
223        }
224
225        // now scale the video
226        video.width(scale * vid_w_orig);
227        video.height(scale * vid_h_orig);
228        // and center it by scrolling the video viewport
229        viewport.scrollLeft((video.width() - $(window).width()) / 2);
230        viewport.scrollTop((video.height() - $(window).height()) / 2);
231    }
232
233    return {
234        init: self.init
235    }
236}();
237
238// Avoid `console` errors in browsers that lack a console.
239(function () {
240    var method;
241    var noop = function () { };
242    var methods = [
243        'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
244        'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
245        'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
246        'timeline', 'timelineEnd', 'timeStamp', 'trace', 'warn'
247    ];
248    var length = methods.length;
249    var console = (window.console = window.console || {});
250
251    while (length--) {
252        method = methods[length];
253
254        // Only stub undefined methods.
255        if (!console[method]) {
256            console[method] = noop;
257        }
258    }
259
260}());

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.