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.