@widelab-nc/widelab 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -6
- package/dist/index.js.map +4 -4
- package/dist/style.css +0 -1
- package/package.json +1 -1
- package/src/index.js +2 -750
package/src/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {initAlpine} from "./init";
|
|
1
|
+
//import {initAlpine} from "./init";
|
|
2
2
|
import Lenis from '@studio-freight/lenis';
|
|
3
3
|
import { gsap } from 'gsap';
|
|
4
4
|
import { CustomEase } from 'gsap/CustomEase';
|
|
@@ -222,754 +222,6 @@ homeLoadAnimation.from(
|
|
|
222
222
|
'>-0.4'
|
|
223
223
|
);
|
|
224
224
|
|
|
225
|
-
// Stats section healdine animation
|
|
226
|
-
const statsHeadlineAnimation = gsap.timeline({
|
|
227
|
-
scrollTrigger: {
|
|
228
|
-
trigger: '#statsKnow',
|
|
229
|
-
start: 'center center',
|
|
230
|
-
toggleActions: 'restart none none reverse',
|
|
231
|
-
end: '+=500',
|
|
232
|
-
},
|
|
233
|
-
pause: 'paused',
|
|
234
|
-
ease: 'defaultEase',
|
|
235
|
-
}),
|
|
236
|
-
homeStatsHeading = new SplitText('#statsDone', {
|
|
237
|
-
type: 'lines',
|
|
238
|
-
linesClass: 'stats-line',
|
|
239
|
-
}),
|
|
240
|
-
homeStatsHeadingMask = new SplitText('#statsDone', {
|
|
241
|
-
type: 'lines',
|
|
242
|
-
linesClass: 'stats-line-mask',
|
|
243
|
-
});
|
|
244
|
-
statsHeadlineAnimation.to(
|
|
245
|
-
'#statsKnow',
|
|
246
|
-
{
|
|
247
|
-
duration: 0.5,
|
|
248
|
-
opacity: 0,
|
|
249
|
-
display: 'none',
|
|
250
|
-
},
|
|
251
|
-
'>'
|
|
252
|
-
);
|
|
253
|
-
statsHeadlineAnimation.from('.stats-line', {
|
|
254
|
-
duration: 0.5,
|
|
255
|
-
opacity: 0,
|
|
256
|
-
y: '100%',
|
|
257
|
-
stagger: 0.25,
|
|
258
|
-
});
|
|
259
|
-
|
|
260
|
-
// Place the elements inside the H1 span for home hero section
|
|
261
|
-
const heroHeadlineContent = document.querySelector('.hero_headline-span.copy-this');
|
|
262
|
-
const heroHeadlineSpan = document.querySelector('.hero_headline-span');
|
|
263
|
-
heroHeadlineSpan.appendChild(heroHeadlineContent);
|
|
264
|
-
|
|
265
|
-
// Place the elements inside the H2 span for home reviews section
|
|
266
|
-
const reviewsHeadlineContent = document.querySelector('.reviews_headline-span.copy-this');
|
|
267
|
-
const reviewsHeadlineSpan = document.querySelector('.reviews_headline-span');
|
|
268
|
-
reviewsHeadlineSpan.appendChild(reviewsHeadlineContent);
|
|
269
|
-
|
|
270
|
-
// Place the elements inside the H2 span for home start section
|
|
271
|
-
const startHeadlineContent = document.querySelector('.start_headline-span.copy-this');
|
|
272
|
-
const startHeadlineSpan = document.querySelector('.start_headline-span');
|
|
273
|
-
startHeadlineSpan.appendChild(startHeadlineContent);
|
|
274
|
-
|
|
275
|
-
// Case study images mask animation
|
|
276
|
-
const csImageMasks = document.querySelectorAll('.portfolio_item_image-mask');
|
|
277
|
-
csImageMasks.forEach((mask) => {
|
|
278
|
-
const maskAnimation = gsap.from(mask, {
|
|
279
|
-
width: '100%',
|
|
280
|
-
duration: 0.72,
|
|
281
|
-
ease: 'loader2',
|
|
282
|
-
paused: true,
|
|
283
|
-
});
|
|
284
|
-
ScrollTrigger.create({
|
|
285
|
-
animation: maskAnimation,
|
|
286
|
-
trigger: mask,
|
|
287
|
-
start: 'top 80%',
|
|
288
|
-
onEnter: () => maskAnimation.play(),
|
|
289
|
-
});
|
|
290
|
-
});
|
|
291
|
-
|
|
292
|
-
// Reviews slider
|
|
293
|
-
// Put content of static slide into list
|
|
294
|
-
const staticContent = document.querySelector(
|
|
295
|
-
'.splide__slide.reviews_collection_item.is-static'
|
|
296
|
-
).innerHTML;
|
|
297
|
-
const dynamicElement = document.querySelector('.reviews_collection_item');
|
|
298
|
-
dynamicElement.innerHTML = staticContent;
|
|
299
|
-
dynamicElement.classList.add('is-static');
|
|
300
|
-
|
|
301
|
-
// Reviews slider splide initialize
|
|
302
|
-
new Splide('#reviewsSlider', {
|
|
303
|
-
type: 'slide',
|
|
304
|
-
fixedWidth: '24.5rem',
|
|
305
|
-
focus: 0,
|
|
306
|
-
padding: { left: '2.5rem', right: 0 },
|
|
307
|
-
gap: 0,
|
|
308
|
-
omitEnd: true,
|
|
309
|
-
arrows: false,
|
|
310
|
-
drag: true,
|
|
311
|
-
easing: 'cubic-bezier(0.83, 0, 0.17, 1)',
|
|
312
|
-
snap: true,
|
|
313
|
-
classes: {
|
|
314
|
-
pagination: 'splide__pagination reviews-pagination',
|
|
315
|
-
page: 'splide__pagination__page reviews-page',
|
|
316
|
-
},
|
|
317
|
-
breakpoints: {
|
|
318
|
-
992: { fixedWidth: '17.438rem', padding: { left: '1.75rem' }, drag: 'free', snap: false },
|
|
319
|
-
480: { fixedWidth: '16.25rem', padding: { left: '1.375rem' }, drag: 'free', snap: false },
|
|
320
|
-
},
|
|
321
|
-
}).mount();
|
|
322
|
-
|
|
323
|
-
// Facts slider splide initialize
|
|
324
|
-
const factsSplide = new Splide('#factsSlider', {
|
|
325
|
-
type: 'loop',
|
|
326
|
-
perPage: 1,
|
|
327
|
-
gap: 0,
|
|
328
|
-
arrows: false,
|
|
329
|
-
drag: false,
|
|
330
|
-
duration: 0.15,
|
|
331
|
-
easing: 'cubic-bezier(0.83, 0, 0.17, 1)',
|
|
332
|
-
classes: {
|
|
333
|
-
pagination: 'splide__pagination facts-pagination',
|
|
334
|
-
page: 'splide__pagination__page facts-page',
|
|
335
|
-
},
|
|
336
|
-
breakpoints: {
|
|
337
|
-
992: { gap: '1.75rem', drag: true },
|
|
338
|
-
480: { gap: '1.375rem' },
|
|
339
|
-
},
|
|
340
|
-
}).mount();
|
|
341
|
-
// Next on click
|
|
342
|
-
if (window.innerWidth > 992) {
|
|
343
|
-
factsSplide.on('click', function () {
|
|
344
|
-
factsSplide.go('+1');
|
|
345
|
-
});
|
|
346
|
-
}
|
|
347
|
-
const externalLink = document.querySelectorAll('.external_link.is-cursor');
|
|
348
|
-
// Loop through each element and execute customCursorIn.reverse()
|
|
349
|
-
externalLink.forEach((link) => {
|
|
350
|
-
link.addEventListener('click', () => {
|
|
351
|
-
event.stopPropagation();
|
|
352
|
-
});
|
|
353
|
-
});
|
|
354
|
-
factsSplide.on('move ', (newIndex) => {
|
|
355
|
-
if (newIndex === 0) {
|
|
356
|
-
document.querySelector('.facts-slide_diagram-trigger.is-0').click();
|
|
357
|
-
} else if (newIndex === 1) {
|
|
358
|
-
document.querySelector('.facts-slide_diagram-trigger.is-1').click();
|
|
359
|
-
} else if (newIndex === 2) {
|
|
360
|
-
document.querySelector('.facts-slide_diagram-trigger.is-2').click();
|
|
361
|
-
}
|
|
362
|
-
});
|
|
363
|
-
|
|
364
|
-
ScrollTrigger.create({
|
|
365
|
-
trigger: '.section.is-facts',
|
|
366
|
-
start: 'top bottom',
|
|
367
|
-
once: true,
|
|
368
|
-
onToggle: () => {
|
|
369
|
-
document.querySelector('.facts-slide_diagram-trigger.is-0').click();
|
|
370
|
-
},
|
|
371
|
-
});
|
|
372
|
-
|
|
373
|
-
// Team slider splide initialize
|
|
374
|
-
new Splide('#teamSlider', {
|
|
375
|
-
type: 'slide',
|
|
376
|
-
fixedWidth: '20%',
|
|
377
|
-
padding: { left: '2.5rem', right: 0 },
|
|
378
|
-
focus: 0,
|
|
379
|
-
gap: 0,
|
|
380
|
-
pagination: false,
|
|
381
|
-
omitEnd: true,
|
|
382
|
-
arrows: false,
|
|
383
|
-
drag: true,
|
|
384
|
-
easing: 'cubic-bezier(0.83, 0, 0.17, 1)',
|
|
385
|
-
snap: true,
|
|
386
|
-
classes: {
|
|
387
|
-
pagination: 'splide__pagination facts-pagination',
|
|
388
|
-
page: 'splide__pagination__page facts-page',
|
|
389
|
-
},
|
|
390
|
-
breakpoints: {
|
|
391
|
-
992: { fixedWidth: '40%', padding: { left: '1.75rem' }, drag: 'free', snap: false },
|
|
392
|
-
560: { fixedWidth: '75%', padding: { left: '1.375rem' }, drag: 'free', snap: false },
|
|
393
|
-
},
|
|
394
|
-
}).mount();
|
|
395
|
-
|
|
396
|
-
// Reel video padding animation
|
|
397
|
-
gsap.to('#reelPrevSection', {
|
|
398
|
-
scrollTrigger: {
|
|
399
|
-
trigger: '#reelPrevSection',
|
|
400
|
-
start: 'top bottom',
|
|
401
|
-
end: 'top top',
|
|
402
|
-
toggleActions: 'restart none none reverse',
|
|
403
|
-
scrub: 1,
|
|
404
|
-
},
|
|
405
|
-
paddingLeft: '0rem',
|
|
406
|
-
paddingRight: '0rem',
|
|
407
|
-
ease: 'linear',
|
|
408
|
-
});
|
|
409
|
-
|
|
410
|
-
// Big team image padding animation
|
|
411
|
-
gsap.to('.team_big-image_wrapper', {
|
|
412
|
-
scrollTrigger: {
|
|
413
|
-
trigger: '.team_big-image_wrapper',
|
|
414
|
-
start: 'top bottom',
|
|
415
|
-
end: 'top top',
|
|
416
|
-
toggleActions: 'restart none none reverse',
|
|
417
|
-
scrub: 1,
|
|
418
|
-
},
|
|
419
|
-
paddingLeft: '0rem',
|
|
420
|
-
paddingRight: '0rem',
|
|
421
|
-
ease: 'linear',
|
|
422
|
-
});
|
|
423
|
-
|
|
424
|
-
// Sections bg animation
|
|
425
|
-
|
|
426
|
-
window.addEventListener('load', function () {
|
|
427
|
-
gsap.set('.section.is-skills', { backgroundColor: '#fff' });
|
|
428
|
-
gsap.set('#heroNavbarLottie path', { fill: 'rgb(21, 21, 21)' });
|
|
429
|
-
if (window.innerWidth > 992) {
|
|
430
|
-
const sectionsBgChange = gsap.timeline({
|
|
431
|
-
duration: 0.2,
|
|
432
|
-
ease: 'loader2',
|
|
433
|
-
scrollTrigger: {
|
|
434
|
-
trigger: '.section.is-skills',
|
|
435
|
-
start: 'top bottom',
|
|
436
|
-
end: 'bottom top',
|
|
437
|
-
toggleActions: 'restart reverse restart reverse',
|
|
438
|
-
},
|
|
439
|
-
});
|
|
440
|
-
sectionsBgChange.to(['#skills', '#portfolio'], {
|
|
441
|
-
backgroundColor: '#151515',
|
|
442
|
-
});
|
|
443
|
-
// Change navbar element on bg animation
|
|
444
|
-
sectionsBgChange.to(
|
|
445
|
-
[
|
|
446
|
-
'.navbar_menu_link',
|
|
447
|
-
'.button_small',
|
|
448
|
-
'.button_small_icon',
|
|
449
|
-
'.navbar_brand_svg',
|
|
450
|
-
'#heroNavbarLottie path ',
|
|
451
|
-
],
|
|
452
|
-
{
|
|
453
|
-
color: '#fff',
|
|
454
|
-
fill: 'rgb(254, 254, 254)',
|
|
455
|
-
},
|
|
456
|
-
'<'
|
|
457
|
-
);
|
|
458
|
-
} else {
|
|
459
|
-
const sectionsBgChange = gsap.timeline({
|
|
460
|
-
duration: 0.2,
|
|
461
|
-
ease: 'loader2',
|
|
462
|
-
scrollTrigger: {
|
|
463
|
-
trigger: '.section.is-skills',
|
|
464
|
-
start: 'top bottom',
|
|
465
|
-
end: 'bottom top',
|
|
466
|
-
toggleActions: 'restart reverse restart reverse',
|
|
467
|
-
},
|
|
468
|
-
});
|
|
469
|
-
sectionsBgChange.to(['#skills', '#portfolio'], {
|
|
470
|
-
backgroundColor: '#151515',
|
|
471
|
-
});
|
|
472
|
-
// Change navbar element on bg animation
|
|
473
|
-
sectionsBgChange.to(
|
|
474
|
-
['.button_small', '.button_small_icon', '.navbar_brand_svg', '#heroNavbarLottie path '],
|
|
475
|
-
{
|
|
476
|
-
color: '#fff',
|
|
477
|
-
fill: 'rgb(254, 254, 254)',
|
|
478
|
-
},
|
|
479
|
-
'<'
|
|
480
|
-
);
|
|
481
|
-
}
|
|
482
|
-
});
|
|
483
|
-
|
|
484
|
-
// Reviews span video mask
|
|
485
|
-
gsap.to('.reviews_headline_ract-mask', {
|
|
486
|
-
scrollTrigger: { trigger: '.reviews_headline_ract-mask', start: 'bottom bottom-=5%' },
|
|
487
|
-
width: 0,
|
|
488
|
-
ease: 'loader2',
|
|
489
|
-
duration: 0.6,
|
|
490
|
-
});
|
|
491
|
-
|
|
492
|
-
// Start span video mask
|
|
493
|
-
gsap.to('.start_headline_ract-mask', {
|
|
494
|
-
scrollTrigger: { trigger: '.start_headline_ract-mask', start: 'bottom bottom-=5%' },
|
|
495
|
-
width: 0,
|
|
496
|
-
ease: 'loader2',
|
|
497
|
-
duration: 0.6,
|
|
498
|
-
});
|
|
499
|
-
|
|
500
|
-
// Home starts section diagram animation
|
|
501
|
-
// Step 1 timeline
|
|
502
|
-
const startStep1 = gsap.timeline({ paused: true });
|
|
503
|
-
startStep1.fromTo(
|
|
504
|
-
'#startPath1',
|
|
505
|
-
{
|
|
506
|
-
drawSVG: '50%',
|
|
507
|
-
},
|
|
508
|
-
{
|
|
509
|
-
drawSVG: '0% 100%',
|
|
510
|
-
duration: 1,
|
|
511
|
-
ease: 'loader',
|
|
512
|
-
}
|
|
513
|
-
);
|
|
514
|
-
startStep1.from(
|
|
515
|
-
'#startIcon1',
|
|
516
|
-
{
|
|
517
|
-
opacity: 0,
|
|
518
|
-
duration: 0.3,
|
|
519
|
-
ease: 'loader',
|
|
520
|
-
},
|
|
521
|
-
'<0.1'
|
|
522
|
-
);
|
|
523
|
-
startStep1.from(
|
|
524
|
-
'#stepPoint1',
|
|
525
|
-
{
|
|
526
|
-
opacity: 0,
|
|
527
|
-
duration: 0.4,
|
|
528
|
-
ease: 'loader',
|
|
529
|
-
},
|
|
530
|
-
0.8
|
|
531
|
-
);
|
|
532
|
-
startStep1.from(
|
|
533
|
-
'#startGradientMask',
|
|
534
|
-
{
|
|
535
|
-
height: '0px',
|
|
536
|
-
opacity: 0,
|
|
537
|
-
duration: 0.6,
|
|
538
|
-
ease: 'loader',
|
|
539
|
-
},
|
|
540
|
-
'-=0.8'
|
|
541
|
-
);
|
|
542
|
-
// Step 2 timeline
|
|
543
|
-
const startStep2 = gsap.timeline({ paused: true });
|
|
544
|
-
startStep2.fromTo(
|
|
545
|
-
'#startPath2',
|
|
546
|
-
{
|
|
547
|
-
drawSVG: '50%',
|
|
548
|
-
},
|
|
549
|
-
{
|
|
550
|
-
drawSVG: '0% 100%',
|
|
551
|
-
duration: 1,
|
|
552
|
-
ease: 'loader',
|
|
553
|
-
}
|
|
554
|
-
);
|
|
555
|
-
startStep2.from(
|
|
556
|
-
'#startIcon2',
|
|
557
|
-
{
|
|
558
|
-
opacity: 0,
|
|
559
|
-
duration: 0.3,
|
|
560
|
-
ease: 'loader',
|
|
561
|
-
},
|
|
562
|
-
'<0.1'
|
|
563
|
-
);
|
|
564
|
-
startStep2.from(
|
|
565
|
-
'#stepPoint2',
|
|
566
|
-
{
|
|
567
|
-
opacity: 0,
|
|
568
|
-
duration: 0.4,
|
|
569
|
-
ease: 'loader',
|
|
570
|
-
},
|
|
571
|
-
0.8
|
|
572
|
-
);
|
|
573
|
-
// Step 3 timeline
|
|
574
|
-
const startStep3 = gsap.timeline({ paused: true });
|
|
575
|
-
startStep3.fromTo(
|
|
576
|
-
'#startPath3',
|
|
577
|
-
{
|
|
578
|
-
drawSVG: '50%',
|
|
579
|
-
},
|
|
580
|
-
{
|
|
581
|
-
drawSVG: '0% 100%',
|
|
582
|
-
duration: 1,
|
|
583
|
-
ease: 'loader',
|
|
584
|
-
}
|
|
585
|
-
);
|
|
586
|
-
startStep3.from(
|
|
587
|
-
'#startIcon3',
|
|
588
|
-
{
|
|
589
|
-
opacity: 0,
|
|
590
|
-
duration: 0.3,
|
|
591
|
-
ease: 'loader',
|
|
592
|
-
},
|
|
593
|
-
'<0.1'
|
|
594
|
-
);
|
|
595
|
-
startStep3.from(
|
|
596
|
-
'#stepPoint3',
|
|
597
|
-
{
|
|
598
|
-
opacity: 0,
|
|
599
|
-
duration: 0.4,
|
|
600
|
-
ease: 'loader',
|
|
601
|
-
},
|
|
602
|
-
0.8
|
|
603
|
-
);
|
|
604
|
-
// Step 4 timeline
|
|
605
|
-
const startStep4 = gsap.timeline({ paused: true });
|
|
606
|
-
startStep4.fromTo(
|
|
607
|
-
'#startPath4',
|
|
608
|
-
{
|
|
609
|
-
drawSVG: '50%',
|
|
610
|
-
},
|
|
611
|
-
{
|
|
612
|
-
drawSVG: '0% 100%',
|
|
613
|
-
duration: 1,
|
|
614
|
-
ease: 'loader',
|
|
615
|
-
}
|
|
616
|
-
);
|
|
617
|
-
startStep4.from(
|
|
618
|
-
'#startIcon4',
|
|
619
|
-
{
|
|
620
|
-
opacity: 0,
|
|
621
|
-
duration: 0.3,
|
|
622
|
-
ease: 'loader',
|
|
623
|
-
},
|
|
624
|
-
'<0.1'
|
|
625
|
-
);
|
|
626
|
-
startStep4.from(
|
|
627
|
-
'#stepPoint4',
|
|
628
|
-
{
|
|
629
|
-
opacity: 0,
|
|
630
|
-
duration: 0.4,
|
|
631
|
-
ease: 'loader',
|
|
632
|
-
},
|
|
633
|
-
0.8
|
|
634
|
-
);
|
|
635
|
-
// Whole animation timeline
|
|
636
|
-
const startDiagramAnimation = gsap.timeline({
|
|
637
|
-
scrollTrigger: {
|
|
638
|
-
trigger: '.section.is-start',
|
|
639
|
-
start: 'bottom 110%',
|
|
640
|
-
end: '+=500',
|
|
641
|
-
},
|
|
642
|
-
});
|
|
643
|
-
startDiagramAnimation.add(startStep1.play());
|
|
644
|
-
startDiagramAnimation.add(startStep2.play(), '-=0.4');
|
|
645
|
-
startDiagramAnimation.add(startStep3.play(), '-=0.4');
|
|
646
|
-
startDiagramAnimation.add(startStep4.play(), '-=0.4');
|
|
647
|
-
|
|
648
|
-
// Play cs item video on mouse hover
|
|
649
|
-
document.addEventListener('DOMContentLoaded', () => {
|
|
650
|
-
if (window.innerWidth > 992) {
|
|
651
|
-
const vid = document.querySelectorAll('.portfolio_item_image-wrapper');
|
|
652
|
-
|
|
653
|
-
vid.forEach((element) => {
|
|
654
|
-
const videoElements = element.getElementsByTagName('video');
|
|
655
|
-
const videoElement = videoElements.length > 0 ? videoElements[0] : null;
|
|
656
|
-
if (!videoElement) return;
|
|
657
|
-
|
|
658
|
-
videoElement.addEventListener('loadeddata', () => {
|
|
659
|
-
videoElement.pause();
|
|
660
|
-
});
|
|
661
|
-
element.addEventListener('mouseenter', hoverIN, false);
|
|
662
|
-
element.addEventListener('mouseleave', hoverOUT, false);
|
|
663
|
-
|
|
664
|
-
function hoverIN() {
|
|
665
|
-
videoElement.play();
|
|
666
|
-
}
|
|
667
|
-
|
|
668
|
-
function hoverOUT() {
|
|
669
|
-
videoElement.pause();
|
|
670
|
-
//videoElement.currentTime = 0;
|
|
671
|
-
}
|
|
672
|
-
});
|
|
673
|
-
} else {
|
|
674
|
-
const videoElems = document.querySelectorAll('.background-video video');
|
|
675
|
-
|
|
676
|
-
videoElems.forEach((videoElem) => {
|
|
677
|
-
const poster = videoElem.getAttribute('poster');
|
|
678
|
-
videoElem.innerHTML = '';
|
|
679
|
-
videoElem.setAttribute('poster', poster);
|
|
680
|
-
videoElem.load();
|
|
681
|
-
videoElem.pause();
|
|
682
|
-
});
|
|
683
|
-
}
|
|
684
|
-
});
|
|
685
|
-
|
|
686
|
-
// Randomize order of team slider
|
|
687
|
-
const teamList = document.querySelector('.team_collection_list');
|
|
688
|
-
const teamItems = Array.from(teamList.children);
|
|
689
|
-
teamItems.sort(function () {
|
|
690
|
-
return 0.5 - Math.random();
|
|
691
|
-
});
|
|
692
|
-
teamItems.forEach(function (item) {
|
|
693
|
-
teamList.appendChild(item);
|
|
694
|
-
});
|
|
695
|
-
|
|
696
|
-
// Clients logos in animation
|
|
697
|
-
const logosStagger = 0.15;
|
|
698
|
-
gsap.from('.clients_collection_item_mask', {
|
|
699
|
-
scrollTrigger: {
|
|
700
|
-
trigger: '.clients_collection_item_mask',
|
|
701
|
-
start: 'top bottom-=25%',
|
|
702
|
-
},
|
|
703
|
-
width: '0%',
|
|
704
|
-
duration: 0.7,
|
|
705
|
-
ease: 'loader2',
|
|
706
|
-
stagger: logosStagger,
|
|
707
|
-
});
|
|
708
|
-
gsap.from('.clients_item_image', {
|
|
709
|
-
scrollTrigger: {
|
|
710
|
-
trigger: '.clients_collection_item_mask',
|
|
711
|
-
start: 'top bottom-=25%',
|
|
712
|
-
},
|
|
713
|
-
opacity: 0,
|
|
714
|
-
delay: 0.4,
|
|
715
|
-
duration: 0.6,
|
|
716
|
-
ease: 'loader2',
|
|
717
|
-
stagger: logosStagger,
|
|
718
|
-
});
|
|
719
|
-
|
|
720
|
-
// Reviews slider animation in
|
|
721
|
-
gsap.from('.splide.is-reviews', {
|
|
722
|
-
scrollTrigger: {
|
|
723
|
-
trigger: '.splide.is-reviews',
|
|
724
|
-
start: 'top bottom',
|
|
725
|
-
end: 'bottom bottom-=15%',
|
|
726
|
-
scrub: 1,
|
|
727
|
-
once: true,
|
|
728
|
-
},
|
|
729
|
-
x: '10%',
|
|
730
|
-
opacity: 0,
|
|
731
|
-
ease: 'linear',
|
|
732
|
-
});
|
|
733
|
-
|
|
734
|
-
// Team slider animation in
|
|
735
|
-
gsap.from('.splide.is-team', {
|
|
736
|
-
scrollTrigger: {
|
|
737
|
-
trigger: '.splide.is-team',
|
|
738
|
-
start: 'top bottom',
|
|
739
|
-
end: 'bottom bottom',
|
|
740
|
-
scrub: 1,
|
|
741
|
-
once: true,
|
|
742
|
-
},
|
|
743
|
-
x: '10%',
|
|
744
|
-
opacity: 0,
|
|
745
|
-
ease: 'linear',
|
|
746
|
-
});
|
|
747
|
-
|
|
748
|
-
// Hover aimation - Michal
|
|
749
|
-
const michalHover = gsap.timeline({ paused: true, ease: 'loader2' });
|
|
750
|
-
michalHover.from('.team_big-image_person-wrapper.is-m', {
|
|
751
|
-
x: '5%',
|
|
752
|
-
opacity: 0,
|
|
753
|
-
duration: 0.4,
|
|
754
|
-
});
|
|
755
|
-
michalHover.from(
|
|
756
|
-
'#m-line',
|
|
757
|
-
{
|
|
758
|
-
drawSVG: '0% 0%',
|
|
759
|
-
duration: 0.2,
|
|
760
|
-
},
|
|
761
|
-
'>-0.2'
|
|
762
|
-
);
|
|
763
|
-
michalHover.from('#m-arrow', {
|
|
764
|
-
drawSVG: '0% 0%',
|
|
765
|
-
duration: 0.15,
|
|
766
|
-
}),
|
|
767
|
-
'>';
|
|
768
|
-
document.addEventListener('DOMContentLoaded', () => {
|
|
769
|
-
if (window.innerWidth > 992) {
|
|
770
|
-
const michalTriegger = document.querySelector('.team_big-image_trigger.is-m');
|
|
771
|
-
michalTriegger.addEventListener('mouseenter', () => {
|
|
772
|
-
michalHover.timeScale(1).play();
|
|
773
|
-
});
|
|
774
|
-
michalTriegger.addEventListener('mouseleave', () => {
|
|
775
|
-
michalHover.timeScale(3).reverse();
|
|
776
|
-
});
|
|
777
|
-
}
|
|
778
|
-
});
|
|
779
|
-
|
|
780
|
-
// Hover aimation - Michal
|
|
781
|
-
const krystianHover = gsap.timeline({ paused: true, ease: 'loader2' });
|
|
782
|
-
krystianHover.from('.team_big-image_person-wrapper.is-k', {
|
|
783
|
-
x: '5%',
|
|
784
|
-
opacity: 0,
|
|
785
|
-
duration: 0.4,
|
|
786
|
-
});
|
|
787
|
-
krystianHover.from(
|
|
788
|
-
'#k-line',
|
|
789
|
-
{
|
|
790
|
-
drawSVG: '0% 0%',
|
|
791
|
-
duration: 0.25,
|
|
792
|
-
},
|
|
793
|
-
'>-0.2'
|
|
794
|
-
);
|
|
795
|
-
krystianHover.from('#k-arrow', {
|
|
796
|
-
drawSVG: '0% 0%',
|
|
797
|
-
duration: 0.15,
|
|
798
|
-
}),
|
|
799
|
-
'>';
|
|
800
|
-
document.addEventListener('DOMContentLoaded', () => {
|
|
801
|
-
if (window.innerWidth > 992) {
|
|
802
|
-
const krystianTriegger = document.querySelector('.team_big-image_trigger.is-k');
|
|
803
|
-
krystianTriegger.addEventListener('mouseenter', () => {
|
|
804
|
-
krystianHover.timeScale(1).play();
|
|
805
|
-
});
|
|
806
|
-
krystianTriegger.addEventListener('mouseleave', () => {
|
|
807
|
-
krystianHover.timeScale(3).reverse();
|
|
808
|
-
});
|
|
809
|
-
}
|
|
810
|
-
});
|
|
811
|
-
|
|
812
|
-
// Hero span hover animation
|
|
813
|
-
const heroSpanContent = document.querySelector('.hero_headline-span');
|
|
814
|
-
const heroSpanContentAnimation = gsap.timeline({ paused: true, ease: 'loader2' });
|
|
815
|
-
heroSpanContentAnimation.to('.hero-line-mask', { clipPath: 'none', duration: 0.05 }, '>');
|
|
816
|
-
heroSpanContentAnimation.to(heroSpanContent, { scale: 2, duration: 0.35 }, '>');
|
|
817
|
-
document.addEventListener('DOMContentLoaded', () => {
|
|
818
|
-
if (window.innerWidth > 992) {
|
|
819
|
-
heroSpanContent.addEventListener('mouseenter', () => {
|
|
820
|
-
heroSpanContentAnimation.timeScale(1).play();
|
|
821
|
-
});
|
|
822
|
-
heroSpanContent.addEventListener('mouseleave', () => {
|
|
823
|
-
heroSpanContentAnimation.timeScale(2).reverse();
|
|
824
|
-
});
|
|
825
|
-
}
|
|
826
|
-
});
|
|
827
|
-
|
|
828
|
-
// Reel modal animation
|
|
829
|
-
const reelTrigger = document.querySelectorAll('[wideClick="playReel"]');
|
|
830
|
-
const reelModal = document.querySelector('.reel-modal');
|
|
831
|
-
const reelModalPlayer = document.getElementById('fullReel');
|
|
832
|
-
const reelPlayback = 0;
|
|
833
|
-
const reelModalShow = gsap.timeline({ ease: 'loader2', paused: true });
|
|
834
|
-
reelModalShow.to(reelModal, { display: 'flex', opacity: 0, duration: 0 });
|
|
835
|
-
reelModalShow.to(reelModal, { opacity: 1, duration: 0.6 }, '>');
|
|
836
|
-
if (window.innerWidth > 992) {
|
|
837
|
-
reelTrigger.forEach((element) => {
|
|
838
|
-
element.addEventListener('click', () => {
|
|
839
|
-
lenis.stop();
|
|
840
|
-
reelModalShow.timeScale(1).play();
|
|
841
|
-
// Set the video source based on whether the player can handle WebM
|
|
842
|
-
if (reelPlayback === 0) {
|
|
843
|
-
if (reelModalPlayer.canPlayType('video/webm')) {
|
|
844
|
-
reelModalPlayer.src =
|
|
845
|
-
'https://widelabco.sfo3.cdn.digitaloceanspaces.com/Widelab-reel.webm';
|
|
846
|
-
} else {
|
|
847
|
-
reelModalPlayer.src =
|
|
848
|
-
'https://widelabco.sfo3.cdn.digitaloceanspaces.com/Widelab-reel.mp4';
|
|
849
|
-
}
|
|
850
|
-
// Load the video
|
|
851
|
-
reelModalPlayer.load();
|
|
852
|
-
} else {
|
|
853
|
-
return;
|
|
854
|
-
}
|
|
855
|
-
|
|
856
|
-
reelModalPlayer.play();
|
|
857
|
-
});
|
|
858
|
-
});
|
|
859
|
-
reelModal.addEventListener('click', () => {
|
|
860
|
-
reelModalShow.timeScale(4).reverse();
|
|
861
|
-
reelModalPlayer.pause();
|
|
862
|
-
lenis.start();
|
|
863
|
-
});
|
|
864
|
-
window.addEventListener('keydown', function (event) {
|
|
865
|
-
// The key code for the ESC key is 27
|
|
866
|
-
if (event.keyCode === 27) {
|
|
867
|
-
reelModalShow.timeScale(4).reverse();
|
|
868
|
-
reelModalPlayer.pause();
|
|
869
|
-
lenis.start();
|
|
870
|
-
}
|
|
871
|
-
});
|
|
872
|
-
} else {
|
|
873
|
-
reelTrigger.forEach((element) => {
|
|
874
|
-
element.addEventListener('click', () => {
|
|
875
|
-
// Set the video source based on whether the player can handle WebM
|
|
876
|
-
if (reelModalPlayer.canPlayType('video/webm')) {
|
|
877
|
-
reelModalPlayer.src = 'https://widelabco.sfo3.cdn.digitaloceanspaces.com/Widelab-reel.webm';
|
|
878
|
-
} else {
|
|
879
|
-
reelModalPlayer.src = 'https://widelabco.sfo3.cdn.digitaloceanspaces.com/Widelab-reel.mp4';
|
|
880
|
-
}
|
|
881
|
-
|
|
882
|
-
// Load the video
|
|
883
|
-
reelModalPlayer.load();
|
|
884
|
-
|
|
885
|
-
// Add a listener to the 'canplaythrough' event
|
|
886
|
-
reelModalPlayer.addEventListener(
|
|
887
|
-
'canplaythrough',
|
|
888
|
-
() => {
|
|
889
|
-
// Once there's enough data loaded to play through, start playback
|
|
890
|
-
reelModalPlayer.play();
|
|
891
|
-
},
|
|
892
|
-
{ once: true }
|
|
893
|
-
); // Ensure this event only fires once per click
|
|
894
|
-
});
|
|
895
|
-
});
|
|
896
|
-
reelModal.addEventListener('click', () => {
|
|
897
|
-
reelModalPlayer.pause();
|
|
898
|
-
});
|
|
899
|
-
}
|
|
900
|
-
|
|
901
|
-
// Map animation
|
|
902
|
-
const mapAnimation = gsap.timeline({
|
|
903
|
-
scrollTrigger: {
|
|
904
|
-
trigger: '.reviews_map_base',
|
|
905
|
-
start: 'bottom-=160px bottom',
|
|
906
|
-
},
|
|
907
|
-
});
|
|
908
|
-
mapAnimation.from('.map-point', {
|
|
909
|
-
duration: 1,
|
|
910
|
-
opacity: 0,
|
|
911
|
-
stagger: 0.1,
|
|
912
|
-
ease: 'loader2',
|
|
913
|
-
});
|
|
914
|
-
mapAnimation.from(
|
|
915
|
-
'.map-pin_wrapper',
|
|
916
|
-
{
|
|
917
|
-
duration: 1,
|
|
918
|
-
opacity: 0,
|
|
919
|
-
stagger: 0.1,
|
|
920
|
-
ease: 'loader2',
|
|
921
|
-
},
|
|
922
|
-
'0.3'
|
|
923
|
-
);
|
|
924
|
-
|
|
925
|
-
// Map pins animation on hover
|
|
926
|
-
const allMapPins = document.querySelectorAll('.map-pin_wrapper');
|
|
927
|
-
allMapPins.forEach(function (element) {
|
|
928
|
-
element.addEventListener('mouseenter', function () {
|
|
929
|
-
const mapPin = this.getAttribute('w-map-pin');
|
|
930
|
-
const oldPin = document.querySelectorAll('.map_info-collection-item');
|
|
931
|
-
|
|
932
|
-
const infoElements = document.querySelectorAll(
|
|
933
|
-
".map_info-collection-item[w-map-info='" + mapPin + "']"
|
|
934
|
-
);
|
|
935
|
-
const infoElementsAppear = gsap.timeline({});
|
|
936
|
-
infoElementsAppear.to(oldPin, {
|
|
937
|
-
opacity: 0,
|
|
938
|
-
ease: 'loader2',
|
|
939
|
-
duration: 0.1,
|
|
940
|
-
});
|
|
941
|
-
infoElementsAppear.to(oldPin, {
|
|
942
|
-
display: 'none',
|
|
943
|
-
duration: 0.01,
|
|
944
|
-
});
|
|
945
|
-
infoElementsAppear.to(infoElements, {
|
|
946
|
-
display: 'block',
|
|
947
|
-
duration: 0.01,
|
|
948
|
-
});
|
|
949
|
-
infoElementsAppear.to(infoElements, {
|
|
950
|
-
opacity: 1,
|
|
951
|
-
ease: 'loader2',
|
|
952
|
-
duration: 0.2,
|
|
953
|
-
});
|
|
954
|
-
});
|
|
955
|
-
});
|
|
956
|
-
|
|
957
|
-
// Map boxes link special code
|
|
958
|
-
document.addEventListener('DOMContentLoaded', (event) => {
|
|
959
|
-
const elements = document.querySelectorAll('.map_info-wrapper');
|
|
960
|
-
|
|
961
|
-
for (let i = 0; i < elements.length; i++) {
|
|
962
|
-
const href = elements[i].getAttribute('href');
|
|
963
|
-
if (href && href.length > 3) {
|
|
964
|
-
elements[i].style.cursor = 'pointer';
|
|
965
|
-
}
|
|
966
|
-
}
|
|
967
|
-
});
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
225
|
|
|
974
226
|
|
|
975
227
|
|
|
@@ -980,7 +232,7 @@ document.addEventListener('DOMContentLoaded', (event) => {
|
|
|
980
232
|
// !!!!!!!!! Keep this Alpine init at the end !!!!!!!!!
|
|
981
233
|
window.Webflow ||= [];
|
|
982
234
|
window.Webflow.push(() => {
|
|
983
|
-
initAlpine();
|
|
235
|
+
//initAlpine();
|
|
984
236
|
lenisScroll();
|
|
985
237
|
customGsapEasing();
|
|
986
238
|
lazyLoad();
|