1(function ($, Drupal, drupalSettings) { 2 /**** GASAP ANIMATIONS ****/ 3 // Homepage banner animation function 4 function runMainBannerAnimation() { 5 let th0 = gsap.timeline(); 6 th0.fromTo( 7 ".main-banner .main-banner-top", 8 { y: 10, opacity: 0, visibility: "hidden" }, 9 { 10 y: 0, 11 duration: 0.5, 12 opacity: 1, 13 visibility: "visible", 14 ease: "easeInOut", 15 clearProps: "all", 16 }, 17 0.5 18 ); 19 gsap.utils 20 .toArray(".main-banner .content .details > *") 21 .forEach(function (child, i) { 22 th0.fromTo( 23 child, 24 { y: 0, opacity: 0, visibility: "hidden" }, 25 { 26 y: 0, 27 opacity: 1, 28 visibility: "visible", 29 duration: 0.3, 30 ease: "easeInOut", 31 }, 32 0.8 + i * 0.25 // after h3 (0.8s) + p (0.5s) + stagger 33 ); 34 }); 35 } 36 37 // Run main banner animation after carousel loads 38 $("#carouselExampleIndicators").on("slid.bs.carousel", function () { 39 //runMainBannerAnimation(); 40 }); 41 42 // If carousel is already loaded (e.g. only one slide), run animation immediately 43 if ($("#carouselExampleIndicators .carousel-item.active").length) { 44 runMainBannerAnimation(); 45 } 46 47 gsap.registerPlugin(ScrollTrigger); 48 49 // GSAP Animations for homepage sections 50 // Interactive Map Home Spacing 51 gsap 52 .timeline({ 53 scrollTrigger: { 54 trigger: ".interactive-map.home-spacing", 55 start: "top 99.99%", 56 }, 57 }) 58 .from(".interactive-map.home-spacing h3", { 59 y: 40, 60 opacity: 0, 61 duration: 0.6, 62 }) 63 .from( 64 ".interactive-map.home-spacing h5", 65 { y: 20, opacity: 0, duration: 0.6 }, 66 "-=0.3" 67 ); 68 69 // Popup animation for all icons under #icons in the interactive map 70 gsap 71 .timeline({ 72 scrollTrigger: { 73 trigger: ".interactive-map.home-spacing", 74 start: "top 99.99%", 75 }, 76 }) 77 .fromTo( 78 ".interactive-map-content svg #icons > *", 79 { scale: 0.2, opacity: 0, transformOrigin: "50% 50%" }, 80 { 81 scale: 1, 82 opacity: 1, 83 duration: 0.5, 84 stagger: 0.12, 85 ease: "back.out(2)", 86 }, 87 1 88 ); 89 90 function animateChildrenOnLoad(selector, options = {}) { 91 const { 92 y = 0, 93 scaleFrom = 1, 94 scaleTo = 1, 95 opacity = 1, 96 duration = 0.3, 97 stagger = 0.15, 98 ease = "easeInOut", 99 } = options; 100 101 if ($(selector).length) { 102 gsap.fromTo( 103 selector, 104 { opacity: 0, scale: scaleFrom, y: y }, 105 { 106 opacity: opacity, 107 scale: scaleTo, 108 y: 0, 109 duration: duration, 110 stagger: stagger, 111 ease: ease, 112 }, 113 options.delay || 0 114 ); 115 } 116 } 117 118 function animateStaggeredChildrenOnScroll( 119 parentSelector, 120 childSelector, 121 options = {} 122 ) { 123 const { 124 y = 0, 125 scaleFrom = 1, 126 scaleTo = 1, 127 opacity = 1, 128 duration = 0.3, 129 stagger = 0.15, 130 ease = "easeInOut", 131 start = "top 80%", 132 delay = 0, 133 } = options; 134 let tl = gsap.timeline({ 135 scrollTrigger: { 136 trigger: parentSelector, 137 start: start, 138 }, 139 }); 140 gsap.utils.toArray(childSelector).forEach(function (child, i) { 141 tl.fromTo( 142 child, 143 { 144 opacity: 0, 145 scale: scaleFrom, 146 y: y, 147 }, 148 { 149 opacity: opacity, 150 scale: scaleTo, 151 y: 0, 152 duration: duration, 153 ease: ease, 154 }, 155 delay + i * stagger 156 ); 157 }); 158 } 159 160 function animateHomepageSections() { 161 // Interactive Map Home Spacing 162 gsap 163 .timeline({ 164 scrollTrigger: { 165 trigger: ".interactive-map.home-spacing", 166 start: "top 99.99%", 167 }, 168 }) 169 .from(".interactive-map.home-spacing h3", { 170 y: 40, 171 opacity: 0, 172 duration: 0.6, 173 }) 174 .from( 175 ".interactive-map.home-spacing h5", 176 { y: 20, opacity: 0, duration: 0.6 }, 177 "-=0.3" 178 ); 179 // Main Banner 180 181 // Welcome Section 182 gsap
183 .timeline({ 184 scrollTrigger: { 185 trigger: ".welcome-sec", 186 start: "top 99.99%", 187 }, 188 }) 189 .from(".welcome-sec .title h3", { y: 40, opacity: 0, duration: 0.6 }) 190 .from( 191 ".welcome-sec .title p", 192 { y: 20, opacity: 0, duration: 0.6 }, 193 "-=0.3" 194 ); 195 196 // Bundle Offers 197 gsap 198 .timeline({ 199 scrollTrigger: { 200 trigger: ".bundle-offers", 201 start: "top 99.99%", 202 }, 203 }) 204 .from(".bundle-header h2", { y: 40, opacity: 0, duration: 0.6 }) 205 .from(".bundle-header p", { y: 20, opacity: 0, duration: 0.6 }, "-=0.3"); 206 207 // Animate each bundle-offers card in the slick slider after Slick is initialized 208 var $bundleSlider = $('.bundle-offers'); 209 function animateBundleOffersCards(firstLoad) { 210 let items = gsap.utils.toArray(".bundle-offers .slick-track > *"); 211 if (firstLoad) { 212 let bundleOffersTl = gsap.timeline({ 213 scrollTrigger: { 214 trigger: ".bundle-offers .slick-track", 215 start: "top 99.99%", 216 }, 217 }); 218 items.forEach(function (child, i) { 219 bundleOffersTl.fromTo( 220 child, 221 { 222 opacity: 0, 223 }, 224 { 225 opacity: 1, 226 duration: 1, 227 ease: "easeInOut", 228 }, 229 i * 0.15 230 ); 231 }); 232 } 233 } 234 if ($bundleSlider.length && typeof $bundleSlider.slick === 'function') { 235 $bundleSlider.on('init', function(event, slick) { 236 animateBundleOffersCards(true); 237 }); 238 239 if ($bundleSlider.hasClass('slick-initialized')) { 240 animateBundleOffersCards(true); 241 } 242 } 243 244 // Today's Shows 245 gsap 246 .timeline({ 247 scrollTrigger: { 248 trigger: ".todays-shows", 249 start: "top 99.99%", 250 }, 251 }) 252 .from(".todays-shows .title h3", { y: 40, opacity: 0, duration: 0.6 }) 253 .from( 254 ".todays-shows .title h5", 255 { y: 20, opacity: 0, duration: 0.6 }, 256 "-=0.3" 257 ); 258 259 // Animate each todays-shows card in the slick slider 260 let todaysShowsTl = gsap.timeline({ 261 scrollTrigger: { 262 trigger: ".todays-shows .slick-track", 263 start: "top 99.99%", 264 }, 265 }); 266 gsap.utils 267 .toArray(".todays-shows .slick-track > *") 268 .forEach(function (child, i) { 269 todaysShowsTl.fromTo( 270 child, 271 { 272 opacity: 0, 273 scale: 0.5, 274 }, 275 { 276 opacity: 1, 277 scale: 1, 278 duration: 0.3, 279 ease: "easeInOut", 280 }, 281 i * 0.15 282 ); 283 }); 284 285 // Features 286 gsap 287 .timeline({ 288 scrollTrigger: { 289 trigger: ".features", 290 start: "top 99.99%", 291 }, 292 }) 293 .from(".features .title h3", { y: 40, opacity: 0, duration: 0.6 }) 294 .from( 295 ".features .title h5", 296 { y: 20, opacity: 0, duration: 0.6 }, 297 "-=0.3" 298 ); 299 300 // Animate each feature card in the slick slider 301 let featuresTl = gsap.timeline({ 302 scrollTrigger: { 303 trigger: ".features .slick-track", 304 start: "top 99.99%", 305 }, 306 }); 307 gsap.utils 308 .toArray(".features .slick-track > *") 309 .forEach(function (child, i) { 310 featuresTl.fromTo( 311 child, 312 { 313 opacity: 0, 314 scale: 0.5, 315 }, 316 { 317 opacity: 1, 318 scale: 1, 319 duration: 0.3, 320 ease: "easeInOut", 321 }, 322 i * 0.15 323 ); 324 }); 325 326 // Top Features 327 gsap 328 .timeline({ 329 scrollTrigger: { 330 trigger: ".top-features", 331 start: "top 99.99%", 332 }, 333 }) 334 .from(".top-features .title h3", { y: 40, opacity: 0, duration: 0.6 }) 335 .from( 336 ".top-features .title h5", 337 { y: 20, opacity: 0, duration: 0.6 }, 338 "-=0.3" 339 ); 340 341 // Animate each top-feature card in the slick slider 342 let topFeaturesTl = gsap.timeline({ 343 scrollTrigger: { 344 trigger: ".top-features .slick-track", 345 start: "top 99.99%", 346 }, 347 }); 348 gsap.utils
349 .toArray(".top-features .slick-track > *") 350 .forEach(function (child, i) { 351 topFeaturesTl.fromTo( 352 child, 353 { 354 opacity: 0, 355 scale: 0.5, 356 }, 357 { 358 opacity: 1, 359 scale: 1, 360 duration: 0.3, 361 ease: "easeInOut", 362 }, 363 i * 0.15 364 ); 365 }); 366 // Region Wonders Block 367 gsap 368 .timeline({ 369 scrollTrigger: { 370 trigger: ".region-wonders-block", 371 start: "top 99.99%", 372 }, 373 }) 374 .fromTo( 375 ".region-wonders-block .image-content", 376 { y: -220, opacity: 0 }, 377 { y: 0, opacity: 1, scale: 1, duration: 0.5, ease: "bounce" }, 378 0.5 379 ) 380 .fromTo( 381 ".region-wonders-block h4", 382 { y: 40, opacity: 0 }, 383 { y: 0, opacity: 1, duration: 0.3 }, 384 1 385 ) 386 .fromTo( 387 ".region-wonders-block .wondered-link", 388 { y: 30, opacity: 0 }, 389 { y: 0, opacity: 1, duration: 0.3, ease: "easeInOut" }, 390 1.3 391 ); 392 393 // Interactive Map Home Spacing 394 gsap 395 .timeline({ 396 scrollTrigger: { 397 trigger: ".interactive-map.home-spacing", 398 start: "top 99.99%", 399 }, 400 }) 401 .fromTo( 402 ".interactive-map.home-spacing h3", 403 { y: 40, opacity: 0 }, 404 { y: 0, opacity: 1, duration: 0.6 } 405 ) 406 .fromTo( 407 ".interactive-map.home-spacing h5", 408 { y: 20, opacity: 0 }, 409 { y: 0, opacity: 1, duration: 0.6 }, 410 "-=0.3" 411 ); 412 413 // Plan Your Visit 414 gsap.timeline({ 415 scrollTrigger: { 416 trigger: ".plan-your-visit", 417 start: "top 99.99%", 418 }, 419 }); 420 421 // Animate each plan-your-visit card in the slick slider 422 let planVisitTl = gsap.timeline({ 423 scrollTrigger: { 424 trigger: ".plan-your-visit .slider", 425 start: "top 99.99%", 426 }, 427 }); 428 gsap.utils 429 .toArray(".plan-your-visit .slider > *") 430 .forEach(function (child, i) { 431 planVisitTl.fromTo( 432 child, 433 { 434 opacity: 0, 435 scale: 0.5, 436 }, 437 { 438 opacity: 1, 439 scale: 1, 440 duration: 0.3, 441 ease: "easeInOut", 442 }, 443 i * 0.15 444 ); 445 }); 446 447 // VIP Exclusive 448 gsap.timeline({ 449 scrollTrigger: { 450 trigger: ".vip-exclusive", 451 start: "top 99.99%", 452 }, 453 }); 454 455 // Animate each vip-exclusive card in the slick slider 456 let vipExclusiveTl = gsap.timeline({ 457 scrollTrigger: { 458 trigger: ".vip-exclusive .slider", 459 start: "top 99.99%", 460 }, 461 }); 462 gsap.utils 463 .toArray(".vip-exclusive .slider > *") 464 .forEach(function (child, i) { 465 vipExclusiveTl.fromTo( 466 child, 467 { 468 opacity: 0, 469 scale: 0.5, 470 }, 471 { 472 opacity: 1, 473 scale: 1, 474 duration: 0.3, 475 ease: "easeInOut", 476 }, 477 i * 0.15 478 ); 479 }); 480 481 // Tripadvisor 482 gsap 483 .timeline({ 484 scrollTrigger: { 485 trigger: ".tripadvisor", 486 start: "top 99.99%", 487 }, 488 }) 489 .from(".tripadvisor .content .left", { 490 x: -40, 491 opacity: 0, 492 duration: 0.7, 493 }) 494 .from( 495 ".tripadvisor .content .right", 496 { x: 40, opacity: 0, duration: 0.7 }, 497 "-=0.5" 498 ); 499 500 // Client Testimonial 501 gsap 502 .timeline({ 503 scrollTrigger: { 504 trigger: ".client-testimonial", 505 start: "top 99.99%", 506 }, 507 }) 508 .from(".client-testimonial .title h3", { 509 y: 40, 510 opacity: 0, 511 duration: 0.6, 512 }) 513 .from( 514 ".client-testimonial .slider .list", 515 { y: 30, opacity: 0, duration: 0.5, stagger: 0.15 }, 516 "-=0.3" 517 ); 518 519 // Sponsors 520 gsap.timeline({ 521 scrollTrigger: { 522 trigger: ".sponsors", 523 start: "top 99.99%", 524 }, 525 }); 526 527 // Animate each sponsors card in the slick slider 528 let sponsorsTl = gsap.timeline({ 529 scrollTrigger: { 530 trigger: ".sponsors .slick-track", 531 start: "top 99.99%", 532 }, 533 }); 534 gsap.utils 535 .toArray(".sponsors .slick-track > *") 536 .forEach(function (child, i) { 537 sponsorsTl.fromTo( 538 child, 539 { 540 opacity: 0, 541 scale: 0.5, 542 }, 543 { 544 opacity: 1, 545 scale: 1, 546 duration: 0.3, 547 ease: "easeInOut", 548 }, 549 i * 0.15 550 ); 551 }); 552 } 553 554 document.addEventListener("DOMContentLoaded", function () { 555 animateHomepageSections(); 556 // Animate buy-section nav-tabs 557 if ($(".buy-section .nav-tabs.buy-tabs").length) { 558 gsap.fromTo( 559 ".buy-section .nav-tabs.buy-tabs > *", 560 { opacity: 0, scale: 0.7 }, 561 { 562 opacity: 1, 563 scale: 1, 564 duration: 0.5, 565 stagger: 0.15, 566 ease: "power2.out", 567 } 568 ); 569 } 570 571 // Animate entry-ticket-gallery children in buy-section 572 animateChildrenOnLoad( 573 ".buy-section .tab-content .entry-ticket-content .buy-section-banner > *", 574 { 575 y: 0, 576 scaleFrom: 1, 577 opacity: 1, 578 duration: 0.3, 579 stagger: 0.15, 580 ease: "easeInOut", 581 delay: 0.5, 582 } 583 ); 584 animateChildrenOnLoad(".checkout .checkout-content #progressbar > *", { 585 y: 0, 586 scaleFrom: 1, 587 opacity: 1, 588 duration: 0.3, 589 stagger: 0.15, 590 ease: "easeInOut", 591 delay: 0.2, 592 }); 593 animateChildrenOnLoad(".inner-banner", { 594 y: 0, 595 scaleFrom: 1, 596 opacity: 1, 597 duration: 1, 598 stagger: 0.15, 599 ease: "easeInOut", 600 delay: 1, 601 }); 602 animateChildrenOnLoad(".breadcrumb-section .container > * ", { 603 y: 0, 604 scaleFrom: 1, 605 opacity: 1, 606 duration: 0.5, 607 stagger: 0.15, 608 ease: "easeInOut", 609 delay: 1.8, 610 }); 611 animateChildrenOnLoad(".about-content .container > * ", { 612 y: 0, 613 scaleFrom: 1, 614 opacity: 1, 615 duration: 1, 616 stagger: 0.15, 617 ease: "easeInOut", 618 delay: 2, 619 }); 620 animateChildrenOnLoad(".starting-text p", { 621 y: 0, 622 scaleFrom: 1, 623 opacity: 1, 624 duration: 1, 625 stagger: 0.15, 626 ease: "easeInOut", 627 delay: 2, 628 }); 629 630 animateStaggeredChildrenOnScroll( 631 ".buy-section .tab-content .entry-ticket-content .entry-ticket-gallery", 632 ".buy-section .tab-content .entry-ticket-content .entry-ticket-gallery > *", 633 { 634 y: 0, 635 scaleFrom: 1, 636 opacity: 1, 637 duration: 0.3, 638 stagger: 0.15, 639 ease: "easeInOut", 640 start: "top 99.99%", 641 } 642 ); 643 644 // Animate dining-features three-thumbnails children 645 animateStaggeredChildrenOnScroll( 646 ".dining-features .three-thumbnails", 647 ".dining-features .three-thumbnails > *", 648 { 649 y: 0, 650 scaleFrom: 0.7, 651 opacity: 1, 652 duration: 0.3, 653 stagger: 0.15, 654 ease: "easeInOut", 655 start: "top 99.0%", 656 delay: 0.5, 657 } 658 ); 659 animateStaggeredChildrenOnScroll( 660 ".our-highlights .four-thumbnails", 661 ".our-highlights .four-thumbnails > *", 662 { 663 y: 0, 664 scaleFrom: 0.7, 665 opacity: 1, 666 duration: 0.3, 667 stagger: 0.15, 668 ease: "easeInOut", 669 start: "top 99.0%", 670 } 671 ); 672 animateStaggeredChildrenOnScroll( 673 ".all-outlets .views-infinite-scroll-content-wrapper", 674 ".all-outlets .views-infinite-scroll-content-wrapper > *", 675 { 676 y: 0, 677 scaleFrom: 0.7, 678 opacity: 1, 679 duration: 0.3, 680 stagger: 0.15, 681 ease: "easeInOut", 682 start: "top 99.0%", 683 } 684 ); 685 animateStaggeredChildrenOnScroll( 686 ".our-highlights .view-content", 687 ".our-highlights .view-content > *", 688 { 689 y: 0, 690 scaleFrom: 0.7, 691 opacity: 1, 692 duration: 0.3, 693 stagger: 0.15, 694 ease: "easeInOut", 695 start: "top 99.0%", 696 } 697 ); 698 animateStaggeredChildrenOnScroll( 699 ".our-outlets .pavilion-product-list", 700 ".our-outlets .pavilion-product-list > *", 701 { 702 y: 0, 703 scaleFrom: 0.7, 704 opacity: 1, 705 duration: 0.3, 706 stagger: 0.15, 707 ease: "easeInOut", 708 start: "top 99.99%", 709 } 710 ); 711 animateStaggeredChildrenOnScroll(".contactus", ".contactus > *", { 712 y: 0, 713 scaleFrom: 1, 714 opacity: 1, 715 duration: 0.3, 716 stagger: 0.15, 717 ease: "easeInOut", 718 start: "top 99.99%", 719 delay: 2, 720 }); 721 722 // Animate plan-your-visit 723 animateStaggeredChildrenOnScroll( 724 ".park-timing", 725 ".park-timing .container > *", 726 { 727 y: 0, 728 scaleFrom: 1, 729 opacity: 1, 730 duration: 0.3, 731 stagger: 0.15, 732 ease: "easeInOut", 733 start: "top 99.99%", 734 } 735 ); 736 animateStaggeredChildrenOnScroll( 737 ".health-safety", 738 ".health-safety .container .row > *", 739 { 740 y: 0, 741 scaleFrom: 1, 742 opacity: 1, 743 duration: 0.3, 744 stagger: 0.15, 745 ease: "easeInOut", 746 start: "top 99.99%", 747 } 748 ); 749 animateStaggeredChildrenOnScroll( 750 ".guest-service-section", 751 ".guest-service-section .container .guest-service-content > *", 752 { 753 y: 0, 754 scaleFrom: 1, 755 opacity: 1, 756 duration: 0.3, 757 stagger: 0.15, 758 ease: "easeInOut", 759 start: "top 99.99%", 760 } 761 ); 762 animateStaggeredChildrenOnScroll( 763 ".special-offers", 764 ".special-offers .container > *", 765 { 766 y: 0, 767 scaleFrom: 1, 768 opacity: 1, 769 duration: 0.3, 770 stagger: 0.15, 771 ease: "easeInOut", 772 start: "top 99.99%", 773 } 774 ); 775 animateStaggeredChildrenOnScroll( 776 ".howto-reach", 777 ".howto-reach .container > *", 778 { 779 y: 0, 780 scaleFrom: 1, 781 opacity: 1, 782 duration: 0.3, 783 stagger: 0.15, 784 ease: "easeInOut", 785 start: "top 99.99%", 786 } 787 ); 788 animateStaggeredChildrenOnScroll( 789 ".fellow-guest", 790 ".fellow-guest .container .slick-track > *", 791 { 792 y: 0, 793 scaleFrom: 0.7, 794 opacity: 1, 795 duration: 0.3, 796 stagger: 0.15, 797 ease: "easeInOut", 798 start: "top 99.99%", 799 } 800 ); 801 802 //animate show-and-events 803 animateStaggeredChildrenOnScroll( 804 ".gallery", 805 ".gallery .product-gallery > *", 806 { 807 y: 0, 808 scaleFrom: 0.7, 809 opacity: 1, 810 duration: 0.3, 811 stagger: 0.15, 812 ease: "easeInOut", 813 start: "top 99.99%", 814 } 815 ); 816 817 // Animate leftside/rightside slide-in for each list 818 gsap.utils.toArray(".imageoverly-content .list").forEach(function (listEl) { 819 var left = listEl.querySelector(".leftside"); 820 var right = listEl.querySelector(".rightside"); 821 if (left) { 822 gsap.from(left, { 823 x: -100, 824 opacity: 0, 825 duration: 0.7, 826 ease: "power3.out", 827 clearProps: "all", 828 scrollTrigger: { 829 trigger: listEl, 830 start: "top 99.99%", 831 toggleActions: "play none none none", 832 }, 833 }); 834 } 835 if (right) { 836 gsap.from(right, { 837 x: 100, 838 duration: 0.7, 839 opacity: 0, 840 ease: "power3.out", 841 clearProps: "all", 842 scrollTrigger: { 843 trigger: listEl, 844 start: "top 99.99%", 845 toggleActions: "play none none none", 846 }, 847 }); 848 } 849 }); 850 851 // Animate carnaval-feature children 852 animateChildrenOnLoad(".carnaval-logo", 853 { 854 y: -600, 855 scaleFrom: 3, 856 opacity: 1, 857 duration: 0.8, 858 stagger: 0.15, 859 ease: "bounce", 860 delay: 0.5, 861 } 862 ); 863 animateStaggeredChildrenOnScroll( 864 ".carnaval-feature .view-content", 865 ".carnaval-feature .view-content > *", 866 { 867 y: 0, 868 scaleFrom: 0.7, 869 opacity: 1, 870 duration: 0.3, 871 stagger: 0.15, 872 ease: "easeInOut", 873 start: "top 99.99%", 874 } 875 ); 876 }); 877 878 // Returns the jQuery object for the active tab pane in .buy-section 879 function getActiveTabPane() { 880 return $(".buy-section .tab-pane.active"); 881 } 882 883 // Get active tab pane after tab is shown 884 $('.buy-section .nav-tabs.buy-tabs [data-toggle="tab"]').on( 885 "shown.bs.tab", 886 function () { 887 var $activePane = getActiveTabPane(); 888 889 // Animate entry-ticket-gallery children in entry_ticket tab 890 891 animateStaggeredChildrenOnScroll( 892 ".buy-section .tab-content .tab-pane#park-entry.active .entry-ticket-gallery", 893 ".buy-section .tab-content .tab-pane#park-entry.active .entry-ticket-gallery > *", 894 { 895 y: 0, 896 scaleFrom: 1, 897 opacity: 1, 898 duration: 0.3, 899 stagger: 0.15, 900 ease: "easeInOut", 901 start: "top 99.99%", 902 } 903 ); 904 905 // Animate new-attraction-tab listing children in buy-section (fixed selector) 906 animateStaggeredChildrenOnScroll( 907 ".buy-section .tab-content .tab-pane.new-attraction-tab.active .attraction-content .buy-section-banner", 908 ".buy-section .tab-content .tab-pane.new-attraction-tab.active .attraction-content .buy-section-banner > *", 909 { 910 y: 0, 911 scaleFrom: 1, 912 opacity: 1, 913 duration: 0.3, 914 stagger: 0.15, 915 ease: "easeInOut", 916 start: "top 99.99%", 917 } 918 ); 919 920 animateStaggeredChildrenOnScroll( 921 ".buy-section .tab-content .tab-pane.new-attraction-tab.active .attraction-content .listing", 922 ".buy-section .tab-content .tab-pane.new-attraction-tab.active .attraction-content .listing > *", 923 { 924 y: 0, 925 scaleFrom: 1, 926 opacity: 1, 927 duration: 0.3, 928 stagger: 0.15, 929 ease: "easeInOut", 930 start: "top 99.99%", 931 } 932 ); 933 934 // Animate wonderpass tab listing children 935 animateStaggeredChildrenOnScroll( 936 ".buy-section .tab-content .tab-pane#wonderpass.active .attraction-content .listing", 937 ".buy-section .tab-content .tab-pane#wonderpass.active .attraction-content .listing > *", 938 { 939 y: 0, 940 scaleFrom: 1, 941 opacity: 1, 942 duration: 0.3, 943 stagger: 0.15, 944 ease: "easeInOut", 945 start: "top 99.99%", 946 } 947 ); 948 949 // Animate special-offers tab 950 animateStaggeredChildrenOnScroll( 951 ".buy-section .tab-content .tab-pane#special-offers.active .special_offer-list", 952 ".buy-section .tab-content .tab-pane#special-offers.active .special_offer-list .views-element-container .view-exclusive-offers .view-content > *", 953 { 954 y: 0, 955 scaleFrom: 1, 956 opacity: 1, 957 duration: 0.3, 958 stagger: 0.15, 959 ease: "easeInOut", 960 start: "top 99.99%", 961 } 962 ); 963 964 // Animate exclusive-packs tab 965 animateStaggeredChildrenOnScroll( 966 ".buy-section .tab-content .tab-pane#exclusive-packs.active .exclusive-packs", 967 ".buy-section .tab-content .tab-pane#exclusive-packs.active .exclusive-packs > *", 968 { 969 y: 0, 970 scaleFrom: 1, 971 opacity: 1, 972 duration: 0.3, 973 stagger: 0.15, 974 ease: "easeInOut", 975 start: "top 99.99%", 976 } 977 ); 978 979 // Animate guest-services tab 980 animateStaggeredChildrenOnScroll( 981 ".buy-section .tab-content .tab-pane#guest-services.active .guest-service-content", 982 ".buy-section .tab-content .tab-pane#guest-services.active .guest-service-content > *", 983 { 984 y: 0, 985 scaleFrom: 1, 986 opacity: 1, 987 duration: 0.3, 988 stagger: 0.15, 989 ease: "easeInOut", 990 start: "top 99.99%", 991 } 992 ); 993 994 // Animate parking tab 995 animateStaggeredChildrenOnScroll( 996 ".buy-section .tab-content .tab-pane#parking.active .parking-content", 997 ".buy-section .tab-content .tab-pane#parking.active .parking-content > *", 998 { 999 y: 0, 1000 scaleFrom: 1, 1001 opacity: 1, 1002 duration: 0.3, 1003 stagger: 0.15,
1004 ease: "easeInOut", 1005 start: "top 99.99%", 1006 } 1007 ); 1008 } 1009 ); 1010})(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.