PageSourceSearch

https://www.ohioshospice.org/wp-content/plugins/scroll_magic//assets/js/scrollmagic.wp.js?ver=4.2.1

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