1(function ($) { 2 ("use strict"); 3 4 /* 5|-------------------------------------------------------------------------- 6| TABLE OF CONTENTS: 7|-------------------------------------------------------------------------- 8| 1. Preloader 9| 2. Mobile Menu 10| 3. Sticky Header 11| 4. Dynamic Background 12| 5. Slick Slider 13| 6. Modal Video 14| 7. Social Button Hover 15| 8. Light Gallery 16| 9. Comming soon 17| 10. Scroll Up 18| 11. Gsap Register Plugin 19| 12. Heder Border Animations 20| 13. Comming Soon and Error Pages Border Animations 21| 14. Top Header Slider Bar 22| 15. Images Overlap 23| 16. About Section Border Animations 24| 17. Portfolio Details Animations 25| 18. Food Menu Animations 26| 19. Footer Animations 27| 20. loaction Section border Animitions 28| 21. Images Zoom In and Out Animitions 29| 22. Title Animation 30| 23. Hover Show Images 31| 24. Scroll Down To Top Animation 32| 25. Scroll Effect Blog Details Page 33| 25. Increase decrease count 34 35 36 /*-------------------------------------------------------------- 37 Scripts initialization 38--------------------------------------------------------------*/ 39 $.exists = function (selector) { 40 return $(selector).length > 0; 41 }; 42 43 $(window).on("load", function () { 44 $(window).trigger("scroll"); 45 $(window).trigger("resize"); 46 preloader(); 47 }); 48 49 $(function () { 50 $(window).trigger("resize"); 51 mainNav(); 52 stickyHeader(); 53 dynamicBackground(); 54 swiperInit(); 55 startCountdown(); 56 modalVideo(); 57 hoverTab(); 58 scrollUp(); 59 }); 60 61 $(window).on("scroll", function () { 62 showScrollUp(); 63 }); 64 /*------------------------------------------------- 65 1. preloader 66 --------------------------------------------------------------*/ 67 68 function preloader() { 69 setTimeout(function () { 70 $("#ak-preloader").addClass("loaded"); 71 72 if ($("#ak-preloader").hasClass("loaded")) { 73 $("#preloader") 74 .delay(800) 75 .queue(function () { 76 $(this).remove(); 77 }) 78 .fadeOut(); 79 } 80 }, 1000); 81 } 82 /*-------------------------------------------------------------- 83 2. Mobile Menu 84 -----------------------------------------------------------------*/ 85 function mainNav() { 86 $(".ak-nav").append('<span class="ak-munu_toggle"><span></span></span>'); 87 $(".menu-item-has-children").append( 88 '<span class="ak-munu_dropdown_toggle"></span>' 89 ); 90 $(".ak-munu_toggle").on("click", function () { 91 $(this) 92 .toggleClass("ak-toggle_active") 93 .siblings(".ak-nav_list") 94 .slideToggle(); 95 }); 96 $(".ak-munu_dropdown_toggle").on("click", function () { 97 $(this).toggleClass("active").siblings("ul").slideToggle(); 98 $(this).parent().toggleClass("active"); 99 }); 100 101 $(".menu-item-has-black-section").append( 102 '<span class="ak-munu_dropdown_toggle_1"></span>' 103 ); 104 105 $(".ak-munu_dropdown_toggle_1").on("click", function () { 106 $(this).toggleClass("active").siblings("ul").slideToggle(); 107 $(this).parent().toggleClass("active"); 108 }); 109 110 $(".ak-mode_btn").on("click", function () { 111 $(this).toggleClass("active"); 112 $("body").toggleClass("ak-dark"); 113 }); 114 // Side Nav 115 $(".ak-icon_btn").on("click", function () { 116 $(".ak-side_header").addClass("active"); 117 }); 118 $(".ak-close, .ak-side_header_overlay").on("click", function () { 119 $(".ak-side_header").removeClass("active"); 120 }); 121 // Menu Text Split 122 $(".ak-animo_links > li > a").each(function () { 123 let xxx = $(this).html().split("").join("</span><span>"); 124 $(this).html(`<span class="ak-animo_text"><span>${xxx}</span></span>`); 125 }); 126 } 127 /*-------------------------------------------------------------- 128 3. Sticky Header 129--------------------------------------------------------------*/ 130 function stickyHeader() { 131 var $window = $(window); 132 var lastScrollTop = 0; 133 var $header = $(".ak-sticky_header"); 134 var headerHeight = $header.outerHeight() + 30; 135 136 $window.scroll(function () { 137 var windowTop = $window.scrollTop(); 138 139 if (windowTop >= headerHeight) { 140 $header.addClass("ak-gescout_sticky"); 141 } else { 142 $header.removeClass("ak-gescout_sticky"); 143 $header.removeClass("ak-gescout_show"); 144 } 145 146 if ($header.hasClass("ak-gescout_sticky")) { 147 if (windowTop < lastScrollTop) { 148 $header.addClass("ak-gescout_show"); 149 } else { 150 $header.removeClass("ak-gescout_show"); 151 } 152 } 153 154 lastScrollTop = windowTop; 155 }); 156 } 157 158 /*--------------------------------------------------------------
159 4. Dynamic Background 160-------------------------------------------------------------*/ 161 function dynamicBackground() { 162 $("[data-src]").each(function () { 163 var src = $(this).attr("data-src"); 164 $(this).css({ 165 "background-image": "url(" + src + ")", 166 }); 167 }); 168 } 169 170 /*-------------------------------------------------------------- 171 5. Slick Slider 172 --------------------------------------------------------------*/ 173 174 function swiperInit() { 175 if ($.exists(".ak-slider-1")) { 176 var swiper = new Swiper(".ak-slider-1", { 177 loop: true, 178 speed: 800, 179 autoplay: false, 180 slidesPerView: "auto", 181 pagination: { 182 el: ".ak-pagination", 183 clickable: true, 184 }, 185 navigation: { 186 nextEl: ".ak-swiper-button-prev", 187 prevEl: ".ak-swiper-button-next", 188 }, 189 }); 190 } 191 if ($.exists(".ak-slider-hero-2")) { 192 var swiper = new Swiper(".ak-slider-hero-2", { 193 loop: true, 194 speed: 800, 195 autoplay: false, 196 slidesPerView: "auto", 197 pagination: { 198 el: ".ak-pagination", 199 clickable: true, 200 }, 201 navigation: { 202 nextEl: ".ak-swiper-button-prev-hero-2", 203 prevEl: ".ak-swiper-button-next-hero-2", 204 }, 205 }); 206 } 207 208 if ($.exists(".ak-slider-2")) { 209 var swiper = new Swiper(".ak-slider-2", { 210 loop: true, 211 speed: 1000, 212 autoplay: false, 213 slidesPerView: "auto", 214 spaceBetween: 30, 215 pagination: { 216 el: ".ak-pagination-2", 217 clickable: true, 218 }, 219 navigation: { 220 nextEl: ".ak-swiper-button-prev-2", 221 prevEl: ".ak-swiper-button-next-2", 222 }, 223 }); 224 } 225 if ($.exists(".ak-slider-3")) { 226 var swiper = new Swiper(".ak-slider-3", { 227 loop: true, 228 speed: 1000, 229 autoplay: false, 230 slidesPerView: "auto", 231 navigation: { 232 nextEl: ".ak-swiper-button-prev-3", 233 prevEl: ".ak-swiper-button-next-3", 234 }, 235 }); 236 } 237 if ($.exists(".ak-slider-4")) { 238 var swiper = new Swiper(".ak-slider-4", { 239 loop: true, 240 speed: 1000, 241 autoplay: true, 242 slidesPerView: 1, 243 navigation: { 244 nextEl: ".ak-swiper-button-prev-4", 245 prevEl: ".ak-swiper-button-next-4", 246 }, 247 }); 248 } 249 if ($.exists(".ak-slider-5")) { 250 var swiper = new Swiper(".ak-slider-5", { 251 loop: true, 252 speed: 1000, 253 autoplay: true, 254 slidesPerView: 1, 255 navigation: { 256 nextEl: ".ak-swiper-button-prev-5", 257 prevEl: ".ak-swiper-button-next-5", 258 }, 259 }); 260 } 261 if ($.exists(".ak-slider-6")) { 262 var swiper = new Swiper(".ak-slider-6", { 263 loop: true, 264 speed: 1200, 265 autoplay: false, 266 slidesPerView: 1, 267 runCallbacksOnInit: true, 268 zoom: { 269 maxRatio: 1.2, 270 minRation: 1, 271 }, 272 navigation: { 273 nextEl: ".ak-swiper-button-prev-6", 274 prevEl: ".ak-swiper-button-next-6", 275 }, 276 }); 277 } 278 279 if ($.exists(".ak-slider-7")) { 280 var swiper = new Swiper(".ak-slider-7", { 281 loop: true, 282 speed: 1000, 283 autoplay: false, 284 slidesPerView: "auto", 285 centeredStartd: true, 286 spaceBetween: 30, 287 pagination: { 288 el: ".ak-pagination", 289 clickable: true, 290 }, 291 }); 292 } 293 294 if ($.exists(".ak-slider-8")) { 295 var swiper = new Swiper(".ak-slider-8", { 296 loop: true, 297 speed: 1000, 298 autoplay: false, 299 slidesPerView: 1, 300 navigation: { 301 nextEl: ".ak-swiper-button-prev-8", 302 prevEl: ".ak-swiper-button-next-8", 303 }, 304 }); 305 } 306 if ($.exists(".ak-slider-9")) { 307 var swiper = new Swiper(".ak-slider-9", { 308 loop: true, 309 speed: 1000, 310 autoplay: false, 311 slidesPerView: "auto", 312 centeredStartd: true, 313 pagination: { 314 el: ".ak-pagination", 315 clickable: true, 316 }, 317 }); 318 } 319 if ($.exists(".ak-slider-core-services")) { 320 var text = [ 321 " / Michelin fine Restaurants", 322 " / Appointed Penthouses", 323 " / Spa and Wellness Sanctuary", 324 " / VIP Lounges and Amenities",
325 " / Event and Conference", 326 ]; 327 var swiper = new Swiper(".ak-slider-core-services", { 328 slidesPerView: 1, 329 loop: true, 330 speed: 1000, 331 effect: "fade", 332 pagination: { 333 el: ".ak-serice-pagination", 334 clickable: true, 335 renderBullet: function (index, className) { 336 return ( 337 '<h4 class=" feature-list ' + 338 className + 339 '">' + 340 (index + 1) + 341 text[index] + 342 "</h4>" 343 ); 344 }, 345 }, 346 }); 347 } 348 } 349 350 /*-------------------------------------------------------------- 351 6. Modal Video 352 --------------------------------------------------------------*/ 353 function modalVideo() { 354 $(document).on("click", ".ak-video-open", function (e) { 355 e.preventDefault(); 356 var video = $(this).attr("href"); 357 video = video.split("?v=")[1].trim(); 358 $(".ak-video-popup-container iframe").attr( 359 "src", 360 `https://www.youtube.com/embed/${video}` 361 ); 362 $(".ak-video-popup").addClass("active"); 363 }); 364 $(".ak-video-popup-close, .ak-video-popup-layer").on("click", function (e) { 365 $(".ak-video-popup").removeClass("active"); 366 $("html").removeClass("overflow-hidden"); 367 $(".ak-video-popup-container iframe").attr("src", "about:blank"); 368 e.preventDefault(); 369 }); 370 } 371 372 /*-------------------------------------------------------------- 373 7. Social Button Hover 374--------------------------------------------------------------*/ 375 function hoverTab() { 376 $(".ak-hover-tab").hover(function () { 377 $(this).addClass("active").siblings().removeClass("active"); 378 }); 379 } 380 381 /*-------------------------------------------------------------- 382 8. Light Gallery 383--------------------------------------------------------------*/ 384 if ($.exists("#static-thumbnails")) { 385 const galleryDiv = document.getElementById("static-thumbnails"); 386 lightGallery(galleryDiv, { 387 selector: ".gallery-hover-icon a", 388 addClass: "lg-custom-thumbnails", 389 animateThumb: true, 390 zoomFromOrigin: true, 391 allowMediaOverlap: true, 392 toggleThumb: true, 393 }); 394 } 395 396 /*-------------------------------------------------------------- 397 9. Comming soon 398--------------------------------------------------------------*/ 399function startCountdown() { 400 const section = document.getElementById("comming-section"); 401 if (!section) return; 402 403 const countdownElements = { 404 months: document.getElementById("months"), 405 days: document.getElementById("days"), 406 hours: document.getElementById("hours"), 407 minutes: document.getElementById("minutes"), 408 seconds: document.getElementById("seconds"), 409 }; 410 411 const targetDate = new Date("2025-08-31T00:00:00").getTime(); 412 413 const updateCountdown = () => { 414 const timeRemaining = targetDate - new Date().getTime(); 415 416 if (timeRemaining <= 0) { 417 clearInterval(interval); 418 Object.values(countdownElements).forEach((el) => { 419 gsap.to(el, { 420 textContent: "0", 421 duration: 0.5, 422 ease: "none", 423 snap: { textContent: 1 }, 424 }); 425 }); 426 return; 427 } 428 429 const units = { 430 months: Math.floor(timeRemaining / (1000 * 60 * 60 * 24 * 30.44)), 431 days: Math.floor( 432 (timeRemaining % (1000 * 60 * 60 * 24 * 30.44)) / 433 (1000 * 60 * 60 * 24) 434 ), 435 hours: Math.floor( 436 (timeRemaining % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60) 437 ), 438 minutes: Math.floor((timeRemaining % (1000 * 60 * 60)) / (1000 * 60)), 439 seconds: Math.floor((timeRemaining % (1000 * 60)) / 1000), 440 }; 441 442 Object.keys(units).forEach((key) => { 443 gsap.to(countdownElements[key], { 444 textContent: units[key], 445 duration: 0.5, 446 ease: "none", 447 snap: { textContent: 1 }, 448 }); 449 }); 450 }; 451 452 const interval = setInterval(updateCountdown, 1000); 453 updateCountdown(); // Initial call 454} 455 456 /*-------------------------------------------------------------- 457 10. Scroll Up 458--------------------------------------------------------------*/ 459 function scrollUp() { 460 $(".ak-scrollup").on("click", function (e) { 461 e.preventDefault(); 462 $("html,body").animate( 463 { 464 scrollTop: 0, 465 }, 466 0 467 ); 468 }); 469 } 470 // For Scroll Up 471 function showScrollUp() { 472 let scroll = $(window).scrollTop(); 473 if (scroll >= 350) { 474 $(".ak-scrollup").addClass("ak-scrollup-show"); 475 } else { 476 $(".ak-scrollup").removeClass("ak-scrollup-show"); 477 } 478 } 479 480 /*-------------------------------------------------------------- 481 11. Gsap Register Plugin 482 --------------------------------------------------------------*/ 483 gsap.registerPlugin(ScrollTrigger, ScrollSmoother, ScrollToPlugin); 484 gsap.config({ 485 nullTargetWarn: false, 486 }); 487 const widthall = window.innerWidth; 488 489 // create the smooth scroller FIRST! 490 const smoother = ScrollSmoother.create({ 491 content: "#scrollsmoother-container", 492 smooth: 1.1, 493 normalizeScroll: true, 494 ignoreMobileResize: true, 495 effects: widthall > 991 ? true : false, 496 smoothTouch: true, 497 }); 498 499 /*-------------------------------------------------------------- 500 12. Heder Border Animations 501 --------------------------------------------------------------*/ 502 503 if ($.exists(".nav-bar-border")) { 504 let border = document.querySelectorAll(".nav-bar-border"); 505 gsap.fromTo( 506 border, 507 { 508 duration: 1, 509 width: "0%", 510 }, 511 { 512 delay: 1, 513 duration: 1, 514 width: "100%", 515 } 516 ); 517 } 518 519 if ($.exists(".header-logo")) { 520 let border = document.querySelectorAll(".header-logo"); 521 gsap.fromTo( 522 border, 523 { 524 duration: 1, 525 height: "0%", 526 }, 527 { 528 delay: 0.5, 529 duration: 1, 530 height: "100%", 531 } 532 ); 533 } 534 535 if ($.exists(".ak-menu-toggle")) { 536 let border = document.querySelectorAll(".ak-menu-toggle"); 537 gsap.fromTo( 538 border, 539 { 540 duration: 1, 541 height: "0%", 542 }, 543 { 544 duration: 1, 545 height: "100%", 546 } 547 ); 548 } 549 550 /*-------------------------------------------------------------- 551 13. Comming Soon and Error Pages Border Animations 552 --------------------------------------------------------------*/ 553 if ($.exists(".border-comming-soon-top")) { 554 let border = document.querySelectorAll(".border-comming-soon-top"); 555 gsap.fromTo( 556 border, 557 { 558 duration: 1, 559 width: "0%", 560 }, 561 { 562 delay: 1, 563 duration: 1.5, 564 width: "100%", 565 } 566 ); 567 } 568 if ($.exists(".border-comming-soon-bottom")) { 569 let border = document.querySelectorAll(".border-comming-soon-bottom"); 570 gsap.fromTo( 571 border, 572 { 573 duration: 1, 574 width: "0%", 575 }, 576 { 577 delay: 1, 578 duration: 1, 579 width: "100%", 580 } 581 ); 582 } 583 if ($.exists(".border-comming-soon-colum-left")) { 584 let border = document.querySelectorAll(".border-comming-soon-colum-left"); 585 gsap.fromTo( 586 border, 587 { 588 duration: 1, 589 height: "0%", 590 }, 591 { 592 delay: 2.2, 593 duration: 1, 594 height: "100%", 595 } 596 ); 597 } 598 if ($.exists(".border-comming-soon-colum-right")) { 599 let border = document.querySelectorAll(".border-comming-soon-colum-right"); 600 gsap.fromTo( 601 border, 602 { 603 duration: 1, 604 height: "0%", 605 }, 606 { 607 delay: 2.2, 608 duration: 1, 609 height: "100%", 610 } 611 ); 612 } 613 614 /*-------------------------------------------------------------- 615 14. Top Header Slider Bar 616 --------------------------------------------------------------*/ 617 if ($.exists(".ak-site_header .top-main-menu-li")) { 618 let akMenuToggle = document.getElementById("akMenuToggle"); 619 const hamsdf = document.querySelector(".ak-main_header_right"); 620 const menu = document.querySelector(".top-main-menu"); 621 const links = menu.querySelectorAll(".top-main-menu-li"); 622 623 const menuItemBar = gsap.timeline(); 624 var navtl = gsap.timeline({ paused: true }); 625 navtl.set(hamsdf, { 626 display: "none", 627 transition: "all 0.5s ease-in", 628 }); 629 630 menuItemBar.to( 631 ".bar-1", 632 0.5, 633 { 634 attr: { d: "M20,0 L2,9" }, 635 x: 1, 636 ease: Power2.easeInOut, 637 }, 638 "start" 639 ); 640 641 menuItemBar.to( 642 ".bar-2", 643 0.5, 644 { 645 autoAlpha: 0, 646 }, 647 "start" 648 ); 649 menuItemBar.to( 650 ".bar-3", 651 0.5, 652 { 653 attr: { d: "M22,12 L2,0" }, 654 x: 1, 655 ease: Power2.easeInOut, 656 }, 657 "start" 658 ); 659 660 navtl 661 .to(menu, { 662 duration: 0.3, 663 opacity: 1, 664 height: "116vh", 665 ease: Expo.easeInOut, 666 stagger: 0.1, 667 background: "#040D10", 668 }) 669 .fromTo( 670 links, 671 { 672 duration: 0.3, 673 opacity: 0, 674 y: 30, 675 ease: Expo.easeInOut, 676 }, 677 { 678 duration: 0.3, 679 opacity: 1, 680 y: -20, 681 stagger: 0.1, 682 ease: Expo.easeInOut, 683 } 684 ); 685 686 navtl.reverse(); 687 menuItemBar.reverse(); 688 gsap.set(links, {
689 display: "none", 690 }); 691 692 akMenuToggle.addEventListener("click", () => { 693 if (!navtl.reversed()) { 694 gsap.set(links, { 695 padding: "0%", 696 display: "none", 697 paddingLeft: "0%", 698 paddingRight: "0%", 699 }); 700 } else { 701 gsap.set(links, { 702 display: "flex", 703 paddingLeft: "15%", 704 paddingRight: "5%", 705 }); 706 } 707 navtl.reversed(!navtl.reversed()); 708 menuItemBar.reversed(!menuItemBar.reversed()); 709 }); 710 } 711 712 /*-------------------------------------------------------------- 713 15. Images Overlap 714 --------------------------------------------------------------*/ 715 if ($.exists(".overlap-opening-img")) { 716 let blogAnim = gsap.utils.toArray(".overlap-opening-img"); 717 const tl3 = gsap.timeline({ 718 scrollTrigger: { 719 trigger: ".overlap-opening-img", 720 start: "top 60%", 721 end: "bottom 10%", 722 scrub: false, 723 markers: false, 724 }, 725 }); 726 727 tl3.to(blogAnim, { 728 ease: Expo.easeInOut, 729 height: "0%", 730 duration: 1, 731 stagger: 2, 732 }); 733 } 734 735 if ($.exists(".img-overlay")) { 736 let img_overlay = document.querySelectorAll(".img-overlay"); 737 img_overlay.forEach((item) => { 738 const tl4 = gsap.timeline({ 739 scrollTrigger: { 740 trigger: item, 741 start: "top 60%", 742 end: "bottom 10%", 743 scrub: false, 744 markers: false, 745 }, 746 }); 747 tl4.to(item, { 748 ease: Expo.easeInOut, 749 height: "0%", 750 duration: 1, 751 stagger: 2, 752 }); 753 }); 754 } 755 756 /*-------------------------------------------------------------- 757 16. About Section Border Animations 758 --------------------------------------------------------------*/ 759 if ($.exists(".ak-about-hr")) { 760 const tl5 = gsap.timeline({ 761 scrollTrigger: { 762 trigger: ".ak-about-hr", 763 start: "top 90%", 764 end: "bottom 10%", 765 scrub: 0.5, 766 markers: false, 767 }, 768 }); 769 770 tl5.fromTo( 771 ".ak-about-hr", 772 { 773 width: "2%", 774 }, 775 { 776 width: "13%", 777 } 778 ); 779 } 780 781 /*-------------------------------------------------------------- 782 17. Portfolio Details Animations 783 --------------------------------------------------------------*/ 784 if ($.exists(".ak-portfolio-details-border")) { 785 const tl5 = gsap.timeline({ 786 scrollTrigger: { 787 trigger: ".ak-portfolio-details-border", 788 start: "top 90%", 789 end: "bottom 10%", 790 scrub: 0.5, 791 markers: false, 792 }, 793 }); 794 795 tl5.fromTo( 796 ".ak-portfolio-details-border", 797 { 798 width: "5px", 799 }, 800 { 801 width: "250px", 802 } 803 ); 804 } 805 /*-------------------------------------------------------------- 806 18. Food Menu Animations 807 --------------------------------------------------------------*/ 808 if ($.exists(".food-menu-hr")) { 809 let food_menu_hr = document.querySelectorAll(".food-menu-hr.style-1"); 810 const tl6 = gsap.timeline({ 811 scrollTrigger: { 812 trigger: food_menu_hr, 813 start: "top 90%", 814 end: "bottom 10%", 815 scrub: 0.5, 816 markers: false, 817 }, 818 }); 819 tl6.fromTo( 820 food_menu_hr, 821 { 822 width: "0px", 823 }, 824 { 825 duration: 2, 826 width: "200px", 827 } 828 ); 829 830 let ak_menu_list_anim_2 = document.querySelectorAll( 831 ".food-menu-hr.style-1.anim-2" 832 ); 833 const tl9 = gsap.timeline({ 834 scrollTrigger: { 835 trigger: ak_menu_list_anim_2, 836 start: "top 90%", 837 end: "bottom 10%", 838 scrub: 0.5, 839 markers: false, 840 }, 841 }); 842 tl9.fromTo( 843 ak_menu_list_anim_2, 844 { 845 width: "0px", 846 }, 847 { 848 duration: 2, 849 width: "200px", 850 } 851 ); 852 853 let ak_menu_list_anim_3 = document.querySelectorAll( 854 ".food-menu-hr.style-1.anim-3" 855 ); 856 const tl10 = gsap.timeline({ 857 scrollTrigger: { 858 trigger: ak_menu_list_anim_3, 859 start: "top 90%", 860 end: "bottom 10%", 861 scrub: 0.5, 862 markers: false, 863 }, 864 }); 865 tl10.fromTo( 866 ak_menu_list_anim_3, 867 { 868 width: "0px", 869 }, 870 { 871 duration: 2, 872 width: "200px", 873 } 874 ); 875 } 876 /*-------------------------------------------------------------- 877 19. Footer Animations 878 --------------------------------------------------------------*/ 879 if ($.exists(".ak-hr-container")) { 880 const tl7 = gsap.timeline({ 881 scrollTrigger: { 882 trigger: ".ak-hr-container", 883 start: "top 90%", 884 end: "bottom 10%", 885 scrub: false, 886 markers: false, 887 }, 888 }); 889 890 tl7.fromTo( 891 ".ak-footer-hr-top", 892 { 893 width: "0%", 894 duration: 0.5, 895 }, 896 { 897 delay: 0.3, 898 duration: 0.5, 899 width: "100%", 900 } 901 ); 902 tl7.fromTo( 903 ".ak-footer-hr-bottom", 904 { 905 width: "0%", 906 }, 907 { 908 duration: 0.5, 909 width: "100%", 910 } 911 ); 912 tl7.to(".footer-time-border", { 913 width: "100%", 914 }); 915 } 916 917 /*-------------------------------------------------------------- 918 20. loaction Section border Animitions 919 --------------------------------------------------------------*/ 920 if ($.exists(".ak-loaction-hr")) { 921 const tl11 = gsap.timeline({ 922 scrollTrigger: { 923 trigger: ".ak-loaction-hr", 924 start: "top center+=200", 925 end: "bottom 10%", 926 scrub: false, 927 markers: false, 928 }, 929 }); 930 931 tl11.fromTo( 932 ".ak-loaction-hr", 933 { 934 width: "0%", 935 }, 936 { 937 delay: 0.3, 938 duration: 0.8, 939 width: "100%", 940 } 941 ); 942 } 943 /*-------------------------------------------------------------- 944 21. Images Zoom In and Out Animitions 945 --------------------------------------------------------------*/ 946 if ($.exists(".imagesZoom")) { 947 let imagesZoomAll = gsap.utils.toArray(".imagesZoom"); 948 imagesZoomAll.forEach((image) => { 949 let tl12 = gsap.timeline({ 950 scrollTrigger: { 951 trigger: image, 952 start: "top 80%", 953 end: "bottom 10%", 954 scrub: 1, 955 markers: false, 956 }, 957 }); 958 959 tl12.fromTo( 960 image, 961 { scale: 1 }, 962 { 963 scale: 1.15, 964 duration: 3.5, 965 ease: "expoScale(1, 1.15)", 966 transformOrigin: "50% 50%", 967 z: 0.1, 968 rotationZ: "0.01", 969 }, 970 "<" 971 ); 972 }); 973 } 974 975 /*-------------------------------------------------------------- 976 22. Title Animation 977 --------------------------------------------------------------*/ 978 if ($.exists(".anim-title")) { 979 let title_text = document.querySelectorAll(".anim-title"); 980 title_text.forEach((element) => { 981 gsap.set(title_text, { overflow: "hidden" }); 982 const tlH = gsap.timeline({ 983 scrollTrigger: { 984 trigger: element, 985 start: "top 80%", 986 end: "bottom 10%", 987 scrub: false, 988 markers: false, 989 }, 990 }); 991 let textChars = new SplitText(element, { 992 type: "chars words", 993 }); 994 tlH.from(textChars.chars, { 995 duration: 0.8, 996 y: 200, 997 autoAlpha: 0, 998 scale: 0.1, 999 stagger: { 1000 from: "start", 1001 axis: "x", 1002 amount: 0.3, 1003 ease: Quint.easeOut, 1004 }, 1005 }); 1006 }); 1007 } 1008 1009 if ($.exists(".anim-title-2")) { 1010 let animTitle2 = gsap.utils.toArray(".anim-title-2"); 1011 animTitle2.forEach((element) => { 1012 let animTitleChar = new SplitText(element, { 1013 type: "chars ,words", 1014 }); 1015 1016 let tlH2 = gsap.timeline({ 1017 scrollTrigger: { 1018 trigger: element, 1019 start: "top 80%", 1020 end: "bottom 10%", 1021 scrub: false, 1022 markers: false, 1023 }, 1024 }); 1025 1026 tlH2.from(animTitleChar.chars, { 1027 duration: 0.8, 1028 scale: 1, 1029 y: 80, 1030 opacity: 0, 1031 rotationX: 100, 1032 transformOrigin: "0% 30% -30", 1033 ease: Expo.easeInOut, 1034 stagger: 0.05, 1035 }); 1036 }); 1037 } 1038 1039 if ($.exists(".page-title-anim")) { 1040 gsap.from(".page-title-anim", 1, { 1041 y: 100, 1042 ease: "power4.out", 1043 delay: 1.5, 1044 stagger: { 1045 amount: 0.3, 1046 }, 1047 }); 1048 } 1049 if ($.exists(".anim-title-3")) { 1050 let title_text_3 = document.querySelectorAll(".anim-title-3"); 1051 title_text_3.forEach((element) => { 1052 let title_text_3_Chars = new SplitText(element, { 1053 type: "chars words", 1054 }); 1055 gsap.from(title_text_3_Chars.chars, { 1056 duration: 0.8, 1057 scale: 1, 1058 delay: 1, 1059 y: 80, 1060 opacity: 0, 1061 rotationX: 100, 1062 transformOrigin: "0% 30% -30", 1063 ease: Expo.easeInOut, 1064 stagger: 0.05, 1065 }); 1066 }); 1067 } 1068 1069 /*-------------------------------------------------------------- 1070 23. Hover Show Images 1071 --------------------------------------------------------------*/ 1072 if ($.exists(".ak-menu-list-section-1")) { 1073 document 1074 .querySelectorAll(".ak-menu-list-section-1") 1075 .forEach(function (elem) { 1076 elem.addEventListener("mouseleave", function (dets) { 1077 gsap.to(elem.querySelector("img"), { 1078 opacity: 0, 1079 ease: Power3, 1080 duration: 0.8, 1081 }); 1082 }); 1083 1084 elem.addEventListener("mousemove", function (dets) { 1085 var diff = dets.clientY - elem.getBoundingClientRect().top; 1086 var dilf = dets.clientX - elem.getBoundingClientRect().left; 1087 1088 gsap.to(elem.querySelector("img"), { 1089 opacity: 1, 1090 ease: Power3, 1091 top: diff, 1092 left: dilf + 50, 1093 }); 1094 }); 1095 }); 1096 } 1097 1098 if ($.exists(".top-main-menu")) { 1099 document.querySelectorAll(".top-main-menu-li").forEach(function (elem) { 1100 elem.firstElementChild.addEventListener("mouseleave", function (dets) { 1101 console.log(elem.thirdElementChild); 1102 gsap.to(elem.querySelector("img"), { 1103 opacity: 0, 1104 ease: Power3, 1105 duration: 0.4, 1106 display: "none", 1107 width: "0%", 1108 }); 1109 }); 1110 1111 elem.firstElementChild.addEventListener("mousemove", function (dets) { 1112 var diff = dets.clientY - elem.getBoundingClientRect().top; 1113 var dilf = dets.clientX - elem.getBoundingClientRect().left; 1114 gsap.to(elem.querySelector("img"), { 1115 opacity: 1, 1116 ease: Power3, 1117 duration: 0.4, 1118 display: "Block", 1119 width: "25%", 1120 top: diff, 1121 left: dilf - 500, 1122 }); 1123 }); 1124 }); 1125 } 1126 1127 /*-------------------------------------------------------------- 1128 24. Scroll Down To Top Animation 1129 --------------------------------------------------------------*/ 1130 if ($.exists(".loading-overlap")) { 1131 const elem = document.querySelector(".loading-overlap"); 1132 // const elem2 = document.querySelector(".footer-log-elem"); 1133 var loadingElem = gsap.timeline(); 1134 // elem2.addEventListener("click", function () { 1135 // loadingElem.to(elem, { 1136 // duration: 0.3, 1137 // height: "100vh", 1138 // ease: Expo.easeInOut, 1139 // }); 1140 // loadingElem.to("html,body", { 1141 // scrollTop: 0, 1142 // }); 1143 // loadingElem.to(elem, { 1144 // delay: 0.1, 1145 // top: 0, 1146 // height: "0vh", 1147 // duration: 0.4, 1148 // ease: Expo.easeInOut, 1149 // }); 1150 // loadingElem.to(elem, { 1151 // buttom: 0, 1152 // }); 1153 // }); 1154 } 1155 /*-------------------------------------------------------------- 1156 25. Scroll Effect Blog Details Page 1157 --------------------------------------------------------------*/ 1158 if ($.exists("#infoProduto")) { 1159 if (widthall > 992) {
1160 let pinpontsection = document.getElementById("infoProduto"); 1161 let galeria = document.getElementById("scrollGaleria"); 1162 let section = document.getElementById("containerAround"); 1163 1164 ScrollTrigger.create({ 1165 trigger: section, 1166 pin: pinpontsection, 1167 start: "top top", 1168 endTrigger: galeria, 1169 end: "bottom bottom", 1170 }); 1171 } 1172 } 1173 1174 /*-------------------------------------------------------------- 1175 25. Scroll Effect Blog Details Page 1176 --------------------------------------------------------------*/ 1177 1178 if ($.exists("#foodItems")) { 1179 const scrollButton = document.getElementById("scroll-btn"); 1180 const foodItems = document.querySelector("#foodItems"); 1181 scrollButton.addEventListener("click", () => { 1182 gsap.to(window, { 1183 scrollTo: foodItems, 1184 duration: 0.3, 1185 }); 1186 }); 1187 } 1188 1189 /*-------------------------------------------------------------- 1190 26. accordeon 1191 --------------------------------------------------------------*/ 1192 $(".ak-accordeon .ak-accordion-body") 1193 .hide() 1194 .prev() 1195 .on("click", function () { 1196 $(this) 1197 .parents(".ak-accordeon") 1198 .find(".ak-accordion-body") 1199 .not(this) 1200 .slideUp() 1201 .prev() 1202 .removeClass("active ak-icon"); 1203 $(this) 1204 .next() 1205 .not(":visible") 1206 .slideDown() 1207 .prev() 1208 .addClass("active ak-icon"); 1209 }); 1210 1211 function textAnimation() { 1212 if (widthall > 767) { 1213 var hasAnim = $(".text_hover_animaiton"); 1214 if (hasAnim.length !== 0) { 1215 hasAnim.each(function () { 1216 var $this = $(this); 1217 var splitType = "words,chars"; 1218 new SplitText($this, { 1219 type: splitType, 1220 wordsClass: "menu-text", 1221 }); 1222 }); 1223 } 1224 } 1225 } 1226 textAnimation(); 1227 1228 /*-------------------------------------------------------------- 1229 27. Funfact Counting Animation 1230 --------------------------------------------------------------*/ 1231 const count_number = gsap.utils.toArray(".ak-funfact.ak-style1"); 1232 const count_id = gsap.utils.toArray(".amin-auto-count"); 1233 if (count_number) { 1234 count_id.forEach((num) => { 1235 gsap.from(num, { 1236 scrollTrigger: { 1237 trigger: num, 1238 start: "top center+=200", 1239 markers: false, 1240 }, 1241 delay: 2, 1242 innerText: 0, 1243 duration: 3, 1244 snap: { 1245 innerText: 1, 1246 }, 1247 }); 1248 }); 1249 gsap.from(count_number, { 1250 scrollTrigger: { 1251 trigger: count_number, 1252 start: "top center+=200", 1253 markers: false, 1254 }, 1255 duration: 2, 1256 scale: 0.5, 1257 opacity: 0, 1258 delay: 0.5, 1259 stagger: 0.2, 1260 ease: "elastic", 1261 force3D: false, 1262 }); 1263 } 1264 1265 /* increase decrease*/ 1266 if ($.exists(".increase-decrease")) { 1267 document.getElementById("increase").addEventListener("click", function () { 1268 var value = parseInt( 1269 document.getElementById("number-single-room").value, 1270 10 1271 ); 1272 value = isNaN(value) ? 0 : value; 1273 value++; 1274 document.getElementById("number-single-room").value = value; 1275 }); 1276 1277 document.getElementById("decrease").addEventListener("click", function () { 1278 var value = parseInt( 1279 document.getElementById("number-single-room").value, 1280 10 1281 ); 1282 value = isNaN(value) ? 0 : value; 1283 value < 1 ? (value = 1) : ""; 1284 value--; 1285 document.getElementById("number-single-room").value = value; 1286 }); 1287 } 1288 1289 //end the scripts ok 1290})(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.