PageSourceSearch

https://acede.es/wp-content/plugins/scroll_magic//assets/js/scrollmagic.wp.js?ver=4.2.5

js acede.es collected 2026-10-08 01:58:04 UTC 19,070 bytes, 428 lines download raw bytes

1(function($) {
2    'use strict';
3    if(typeof ScrollMagic == 'undefined' || typeof BB_SCENES == 'undefined') {
4		return;
5    }
6    
7    $.each(BB_SCENES, function (index, scene) {
8        if (typeof scene.misc != 'undefined' && typeof scene.misc.disableMobile != 'undefined' && scene.misc.disableMobile == 'on' && BB_DEVICE == 'mobile' ) {
9            delete BB_SCENES[index];
10        }
11        if (typeof scene.misc != 'undefined' && typeof scene.misc.disableDesktop != 'undefined' && scene.misc.disableDesktop == 'on' && BB_DEVICE == 'desktop') {
12            delete BB_SCENES[index];
13        }
14    });
15    
16    // Preload images - v2.7.1
17    $.fn.preload = function() {
18        this.each(function(){
19            $('<img/>')[0].src = this;
20        });
21    };
22
23    var bbsmController = new ScrollMagic.Controller();
24    var bbsmController_h = new ScrollMagic.Controller( {vertical: false} );
25        
26    $('document').ready(function() {
27        
28        $('body').prepend('<span id="bbsm-trigger-top-document" class="bb-scrollmagic-trigger"></span>');
29        
30        $.each(BB_SCENES, function(key, value) {
31            var counter = 1;
32            var settings = value.settings;
33            var init = value['init'];
34            var tween = value['tween'];
35            var misc = value['misc'];
36            var bezier = value['bezier'];
37            var controller;
38            if(typeof settings.general.vertical != undefined && settings.general.vertical == 'off') {
39                if(typeof misc.container != 'undefined' && misc.container != '' && $(misc.container).length > 0) {
40                    controller = new ScrollMagic.Controller( { container: misc.container , vertical: false} );
41                } else {
42                    controller = bbsmController_h;
43                }
44            } else {
45                if(typeof misc.container != 'undefined' && misc.container != '' && $(misc.container).length > 0) {
46                    controller = new ScrollMagic.Controller( {container: misc.container} );
47                } else {
48                    controller = bbsmController;
49                }
50            }
51            
52            if (typeof misc.selector !== 'undefined' && misc.selector != '' && $(misc.selector).length > 0) {
53                $('body ' + misc.selector).each(function() {
54                    var $self = $(this);
55                    var trigger = '';
56                    if(typeof settings.general.triggerElement != undefined) {
57                        trigger = settings.general.triggerElement;
58                    } 
59                    if(trigger == 'top-document') {
60                        trigger = 'bbsm-trigger-top-document';
61                    } else {
62                        trigger = 'bbsm-trigger-selector-'+key+'-'+(counter++);
63                        $self.before('<span id="'+trigger+'" class="bb-scrollmagic-trigger"></span>');
64                    }
65                    
66                    bbsm_scrollmagic($self, settings, init, tween, misc, bezier, trigger, controller);
67                });
68            }
69            
70            $('body .' + key).each(function() {
71                
72                var $self = $(this);
73                var trigger = '';
74                if(typeof settings.general.triggerElement != undefined) {
75                    trigger = settings.general.triggerElement;
76                }
77                if(trigger == 'top-document') {
78                    trigger = 'bbsm-trigger-top-document';
79                } else {
80                    trigger = 'bbsm-trigger-'+key+'-'+(counter++);
81                    $self.before('<span id="'+trigger+'" class="bb-scrollmagic-trigger"></span>');
82                }
83                
84                bbsm_scrollmagic($self, settings, init, tween, misc, bezier, trigger, controller);
85            });
86        });
87        
88
89        $('[data-scrollmagic="true"]').each(function() {
90            var $self = $(this);
91            var settings = ($self.data('bbsm-settings'));
92            var init = ($self.data('bbsm-init'));
93            var tween = ($self.data('bbsm-tween'));
94            var misc = ($self.data('bbsm-misc'));
95            var bezier = ($self.data('bbsm-bezier'));
96            var trigger = ($self.data('bbsm-trigger'));
97
98            bbsm_scrollmagic($self, settings, init, tween, misc, bezier, trigger);
99        });
100
101        // Dots Navigation
102        // Cache selectors
103        var lastId,
104            topMenu = $("#top-menu"),
105            topMenuHeight = 0,//topMenu.outerHeight() + 15,
106            // All list items
107            menuItems = $(".wpsm-dots-navigation a"),
108            // Anchors corresponding to menu items
109            scrollItems = menuItems.map(function () {
110                var item = $($(this).attr("href"));
111                if (item.length) {
112                    return item;
113                }
114            });
115
116        // Bind click handler to menu items
117        // so we can get a fancy scroll animation
118        menuItems.click(function (e) {
119            var href = $(this).attr("href"),
120                offsetTop = href === "#" ? 0 : $(href).offset().top - topMenuHeight;
121            $('html, body').stop().animate({
122                scrollTop: offsetTop
123            }, 300);
124            if(window.history && window.history.pushState) {
125                history.pushState("", document.title, $(this).attr("href"));
126            }
127            e.preventDefault();
128        });
129
130        // Bind to scroll
131        $(window).scroll(function () {
132            // Get container scroll position
133            var fromTop = $(this).scrollTop() + topMenuHeight;
134            // Get id of current scroll item
135            var cur = scrollItems.map(function () {
136                if ($(this).offset().top < (fromTop + 5))
137                    return this;
138            });
139            // Get the id of the current element
140            cur = cur[cur.length - 1];
141            var id = cur && cur.length ? cur[0].id : "";
142
143            menuItems.filter("[href='#" + id + "']").addClass("active")
144
145            if (lastId !== id) {
146                lastId = id;
147                // Set/remove active class
148                menuItems
149                    .removeClass("active")
150                    .end().filter("[href='#" + id + "']").addClass("active");
151            }
152        });
153
154    });
155
156    function bbsm_scrollmagic($self, settings, init, tween, misc, bezier, trigger, controller){
157        gsap.set($self, init);
158
159        if (typeof init.blur !== 'undefined' && init.blur != '') {
160            gsap.to($self, 0, {webkitFilter:"blur(" + init.blur + "px)",filter:"blur(" + init.blur+ "px)"}, 0);
161        }
162        var reverse = true;
163        if (typeof settings.general.reverse !== 'undefined') {
164            reverse = eval(settings.general.reverse);
165        }
166
167        var duration = settings.general.duration;
168        if( duration != '' ){
169            if (duration.indexOf('vh')!=-1){
170                duration = duration.replace('vh', '');
171                duration = window.innerHeight/100 * duration;
172            }
173        }
174        tween['duration'] = settings.ease.duration;
175        var tl = gsap.timeline();
176        tl.to($self, tween);
177        var scene = new ScrollMagic.Scene({
178            triggerElement: '#' + trigger,
179            duration: duration,
180            offset: settings.general.offset,
181            triggerHook: settings.general.triggerHook,
182            reverse: reverse,
183            tweenChanges: true
184        }).setTween( tl);
185
186        if (typeof bezier != undefined && bezier.length > 0) {
187            var bezierEffect = gsap.timeline();
188			bezierEffect.to($self,{
189				duration:  settings.ease.duration,
190				ease: eval(settings.ease.ease),
191				motionPath: {
192					path: bezier, 
193					curviness: 1.25,
194					autoRotate: true
195				}
196            });
197            
198            scene.setTween(bezierEffect);
199        }
200
201        if (typeof settings.general.pin !== 'undefined' && settings.general.pin == 'on') {
202            var pushFollowers = true;
203            if (typeof settings.general.pushFollowers !== 'undefined') {
204                pushFollowers = eval(settings.general.pushFollowers);
205            }
206            scene.setPin($self[0], {pushFollowers: pushFollowers});
207        }
208
209        if (typeof settings.class.classToggleEnable !== 'undefined' && settings.class.classToggleEnable == 'on') {
210            $self.addClass('animated');
211            if (typeof settings.class.customClassCSS !== 'undefined' && settings.class.classCSS == 'custom') {
212                scene.setClassToggle($self[0], settings.class.customClassCSS);
213            } else {
214                scene.setClassToggle($self[0], settings.class.classCSS);
215            }
216        }
217
218        // on click in version 4.0.5
219        if (typeof misc.clickTo !== 'undefined' && misc.clickTo != '') {
220            scene.on("enter", function (event) {
221                $(misc.clickTo).trigger('click');
222            });
223        }
224
225        scene.addTo(controller); 
226        $(window).load(function() {
227            if ($self.find('path').length > 0 && typeof misc !== 'undefined' && typeof misc.drawSVG !== 'undefined' && misc.drawSVG == 'on') {
228                var lineLength = $self.find('path')[0].getTotalLength();
229                $self.find('path').css("stroke-dasharray", lineLength+' '+lineLength);
230                $self.find('path').css("stroke-dashoffset", lineLength);
231                if ( misc.unableFill  == 'on') {
232                    $self.find('path').css("fill","none");
233                }
234
235                $self.find('path').css("stroke", misc.stroke);
236                if( misc.stroke!="" ){
237                    $self.find('path').css("stroke", misc.stroke);
238                }
239                if( misc.strokeWidth!="" ){
240                    $self.find('path').css("stroke-width", misc.strokeWidth);
241                }
242
243                var tween_svg = gsap.timeline();
244                    tween_svg.to($self.find('path'), {
245                    duration:settings.ease.duration,
246                    strokeDashoffset: 0,
247                    ease: Linear.easeNone
248                });
249                var scene_svg = new ScrollMagic.Scene({
250                    triggerElement: '#' + trigger,
251                    triggerHook: settings.general.triggerHook,
252                    duration: settings.general.duration,
253                    offset: settings.general.offset,
254                    reverse: reverse,
255                    tweenChanges: true
256                }).setTween(tween_svg);
257                scene_svg.addTo(controller);
258            }
259        });
260        if (typeof misc !== 'undefined' && (typeof misc.imageSequence == 'undefined' || misc.imageSequence == 'on')) {
261            if ($self.find('.bbsm-imagesequence').length > 0) {
262                var repeat, images, obj;
263                if(typeof misc.imageSequenceRepeat == 'undefined') {
264                    repeat = 0;
265                } else {
266                    repeat = misc.imageSequenceRepeat;
267                }
268                images = $self.find('.bbsm-imagesequence').data('bbsm-imagesequence');
269                $(images).preload();
270                obj = {
271                    curImg: 0
272                };
273                // create tween
274                var tween_imagesequence = gsap.timeline();
275                    tween_imagesequence.to(obj,  {
276                    duration: 0.5,
277                    curImg: images.length - 1, 
278                    roundProps: "curImg", 
279                    repeat: repeat, 
280                    immediateRender: true, // load first image automatically
281                    ease: Linear.easeNone, // show every image the same ammount of time
282                    onUpdate: function() {
283                        $self.find('.bbsm-imagesequence img').attr("src", images[obj.curImg]); // set the image source
284                        $self.find('.bbsm-imagesequence img').attr("srcset", images[obj.curImg]); // set the image source
285                        $self.find('.bbsm-imagesequence source').attr("srcset", images[obj.curImg]); // set the image source
286                    }
287                });
288
289                var duration = settings.general.duration;
290                if( duration != '' ){
291                    if (duration.indexOf('vh')!=-1){
292                        duration = duration.replace('vh', '');
293                        duration = window.innerHeight/100 * duration;
294                    }
295                }
296
297                var scene_imagesequence = new ScrollMagic.Scene({
298                    triggerElement: '#' + trigger,
299                    triggerHook: settings.general.triggerHook,
300                    duration: duration,
301                    offset: settings.general.offset,
302                    reverse: reverse,
303                    tweenChanges: true
304                }).setTween(tween_imagesequence);
305                scene_imagesequence.addTo(controller);
306
307            }
308        }
309        if (typeof misc !== 'undefined' &&  misc.scrollToPlay == 'on') {
310            if ($self.find('video').length > 0) {
311                var myVideo = $self.find('video')[0];
312                var autoPlay = new ScrollMagic.Scene({
313                    triggerElement: '#' + trigger,
314                    triggerHook: settings.general.triggerHook,
315                    duration: duration,
316                    offset: settings.general.offset,
317                    reverse: reverse,
318                    tweenChanges: true
319                }).on("start", function (event) {
320                    if (myVideo.paused){
321                        myVideo.play();
322                    }
323                    else {
324                        myVideo.pause();
325                    }
326                });
327                autoPlay.addTo(controller);
328            }else if ($self.find('audio').length > 0) {
329                var myAudio = $self.find('audio')[0];
330                var autoPlay = new ScrollMagic.Scene({
331                    triggerElement: '#' + trigger,
332                    triggerHook: settings.general.triggerHook,
333                    duration: duration,
334                    offset: settings.general.offset,
335                    reverse: reverse,
336                    tweenChanges: true
337                }).on("start", function (event) {
338                    if (myAudio.paused){
339                        myAudio.play();
340                    }
341                    else {
342                        myAudio.pause();
343                    }
344                });
345                autoPlay.addTo(controller);
346            }
347        }
348        if (typeof misc !== 'undefined' &&  misc.timeLapse == 'on') {
349          $( window ).load(function() {
350
351                var myVideo = $self.find('video')[0];
352                var timeLapse = new ScrollMagic.Scene({
353                    triggerElement: '#' + trigger,
354                    triggerHook: settings.general.triggerHook,
355                    duration: duration,
356                    offset: settings.general.offset,
357                    reverse: reverse,
358                    tweenChanges: true
359                })
360                var scrollVideo = {a:0};
361    			setTimeout(()=>{ 
362                    timeLapse.setTween( gsap.to(scrollVideo, {a: myVideo.duration *1, onUpdate:()=>
362{ myVideo.currentTime = scrollVideo.a*1 } }));
363                    timeLapse.addTo(controller);
364                }, 400);
365                
366            });
367        }
368        if (typeof misc !== 'undefined' &&  misc.textDance == 'on') {
369            if ($self.find('p').length < 1 ) {
370                return;
371            }
372            var mySplitText = new SplitText($self.find('p'), {type:"words,chars"});
373			var chars = mySplitText.chars;
374            var tl = gsap.timeline();
375            gsap.to($self.find('p'), {perspective: 400});
376			var style =  misc.textDanceStyle;
377			var stagger =  misc.textDanceSpeed || 0.01;
378			switch (style) {
379				case 'wave_from':
380					tl.from(chars, {duration: 1,  opacity:0, scale:0, y:80, rotationX:180, transformOrigin:"0% 50% -50",  ease:"back", stagger:stagger}, "+=0");
381					break;
382				case 'wave_to':
383					tl.to(chars, {duration: 1,  opacity:0, scale:0, y:80, rotationX:180, transformOrigin:"0% 50% -50",  ease:"back", stagger: stagger}, "+=0");
384                    break;
385                case 'random_from':
386                    tl.from(chars, {duration: 1,  opacity:0, scale:0, y:80, rotationZ: ((Math.random() * (500 - (-500))) + (-500)), rotationX: ((Math.random() * (500 - (-500))) + (-500)), rotationY: ((Math.random() * (500 - (-500))) + (-500)), transformOrigin:"0% 50% -50",  ease:"back", stagger: stagger}, "+=0");
387					break;
388				case 'random_to':
389                    tl.to(chars, {duration: 1,  opacity:0, scale:0, y:80, rotationZ: ((Math.random() * (500 - (-500))) + (-500)), rotationX: ((Math.random() * (500 - (-500))) + (-500)), rotationY: ((Math.random() * (500 - (-500))) + (-500)), transformOrigin:"0% 50% -50",  ease:"back", stagger: stagger}, "+=0");
390					break;
391				default:
392                    tl.from(chars, {duration: 1,  opacity:0, scale:0, y:80, rotationZ: ((Math.random() * (500 - (-500))) + (-500)), rotationX: ((Math.random() * (500 - (-500))) + (-500)), rotationY: ((Math.random() * (500 - (-500))) + (-500)), transformOrigin:"0% 50% -50",  ease:"back", stagger: stagger}, "+=0");
393					break;
394			}
395            var textDance = new ScrollMagic.Scene({
396                triggerElement: '#' + trigger,
397                triggerHook: settings.general.triggerHook,
398                duration: duration,
399                offset: settings.general.offset,
400                reverse: reverse,
401                tweenChanges: true
402            })
403            .setTween(tl);
404            textDance.addTo(controller);
405            
406        }
407        if ((null!=init.blur&& 0!=init.blur)||(null!=tween.blur && 0!=tween.blur)) {
408            var sceneBlur = new ScrollMagic.Scene({
409                triggerElement: '#' + trigger,
410                triggerHook: settings.general.triggerHook,
411                duration: settings.general.duration,
412                offset: settings.general.offset,
413                reverse: reverse,
414                tweenChanges: true
415            });
416            var blurElement = {a:init.blur!=null?init.blur*1:0};
417            var tl = gsap.timeline();
418            tl.to(blurElement, {duration: tween.delay!=null&&tween.delay!=""?tween.delay:0.5, a:tween.blur!=null?tween.blur*1:0, onUpdate:applyBlur});
419            sceneBlur.setTween( tl );
420            function applyBlur()
421            {
422                gsap.to($self, {webkitFilter:"blur(" + blurElement.a + "px)",filter:"blur(" + blurElement.a + "px)"});  
423            };
424            sceneBlur.addTo(controller);
425        }
426    }
427    
428})(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.