1(function ($) { 2 "use strict"; 3 4 var page = 1; 5 var loading = false; 6 7 if ($('#archive-load-more-portfolio').length) { 8 9 $('#archive-load-more-portfolio').on('click', function (e) { 10 11 e.preventDefault(); 12 13 if (!loading) { 14 loading = true; 15 page++; 16 17 $(".load-btn").addClass("gif"); 18 19 $.ajax({ 20 type: 'POST', 21 url: loadmore.ajaxurl, 22 data: { 23 action: 'load_more_portfolio', 24 page: page 25 // Add any additional parameters if needed 26 }, 27 success: function (response) { 28 if (response) { 29 if (response.trim() !== 'No data') { 30 $('#portfolio-archive').append(response); 31 32 $(".load-btn").removeClass("gif"); 33 } else { 34 $('#archive-load-more-portfolio').hide(); 35 } 36 } else { 37 $('#archive-load-more-portfolio').hide(); 38 } 39 loading = false; 40 }, 41 42 }); 43 } 44 }); 45 } 46 47 48 if ($('#archive-load-more-case-study').length) { 49 50 $('#archive-load-more-case-study').on('click', function (e) { 51 52 e.preventDefault(); 53 54 if (!loading) { 55 loading = true; 56 page++; 57 58 $(".load-btn").addClass("gif"); 59 60 $.ajax({ 61 type: 'POST', 62 url: loadmore.ajaxurl, 63 data: { 64 action: 'load_more_case', 65 page: page 66 // Add any additional parameters if needed 67 }, 68 success: function (response) { 69 70 if (response) { 71 if (response.trim() !== 'No data') { 72 $('#case-archive').append(response); 73 74 $(".load-btn").removeClass("gif"); 75 } else { 76 $('#archive-load-more-case-study').hide(); 77 } 78 } else { 79 $('#archive-load-more-case-study').hide(); 80 } 81 loading = false; 82 }, 83 84 }); 85 } 86 }); 87 } 88 89 90 if ($('#archive-load-more-case-style-one').length) { 91 92 $('#archive-load-more-case-style-one').on('click', function (e) { 93 94 e.preventDefault(); 95 96 if (!loading) { 97 loading = true; 98 page++; 99 100 $(".load-btn").addClass("gif"); 101 102 $.ajax({ 103 type: 'POST', 104 url: loadmore.ajaxurl, 105 data: { 106 action: 'load_more_case_style_one', 107 page: page 108 // Add any additional parameters if needed 109 }, 110 success: function (response) { 111 if (response) { 112 if (response.trim() !== 'No data') { 113 $('#case-style-one-archive').append(response); 114 115 $(".load-btn").removeClass("gif"); 116 } else { 117 $('#archive-load-more-case-style-one').hide(); 118 } 119 } else { 120 $('#archive-load-more-case-style-one').hide(); 121 } 122 loading = false; 123 }, 124 125 }); 126 } 127 }); 128 } 129 130 131 132 if ($('#archive-load-more-portfolio-info-flow').length) { 133 134 $('#archive-load-more-portfolio-info-flow').on('click', function (e) { 135 136 e.preventDefault(); 137 138 if (!loading) { 139 loading = true; 140 page++; 141 142 $(".load-btn").addClass("gif"); 143 144 $.ajax({ 145 type: 'POST', 146 url: loadmore.ajaxurl, 147 data: { 148 action: 'load_more_portfolio_info', 149 page: page 150 // Add any additional parameters if needed 151 }, 152 success: function (response) { 153 if (response) { 154 if (response.trim() !== 'No data') { 155 $('#portfolio_info_flow').append(response); 156 157 $(".load-btn").removeClass("gif"); 158 } else { 159 $('#archive-load-more-portfolio-info-flow').hide(); 160 } 161 } else { 162 $('#archive-load-more-portfolio-info-flow').hide(); 163 } 164 loading = false; 165 }, 166 167 }); 168 } 169 }); 170 } 171 172 173 174 if ($('#archive-load-more-portfolio-list').length) { 175 176 $('#archive-load-more-portfolio-list').on('click', function (e) { 177 178 e.preventDefault(); 179 180 if (!loading) { 181 loading = true; 182 page++; 183 184 $(".load-btn").addClass("gif"); 185 186 $.ajax({ 187 type: 'POST', 188 url: loadmore.ajaxurl, 189 data: { 190 action: 'load_more_portfolio_list', 191 page: page 192 // Add any additional parameters if needed 193 }, 194 success: function (response) { 195 if (response) { 196 if (response.trim() !== 'No data') { 197 $('#portfolio_info_flow').append(response); 198 199 $(".load-btn").removeClass("gif"); 200 } else { 201 $('#archive-load-more-portfolio-list').hide(); 202 } 203 } else { 204 $('#archive-load-more-portfolio-list').hide(); 205 } 206 loading = false;
207 }, 208 209 210 }); 211 } 212 }); 213 } 214 215 216 217 if ($('#archive-load-more-portfolio-masonary').length) { 218 219 $('#archive-load-more-portfolio-masonary').on('click', function (e) { 220 221 e.preventDefault(); 222 223 if (!loading) { 224 loading = true; 225 page++; 226 227 $(".load-btn").addClass("gif"); 228 229 $.ajax({ 230 type: 'POST', 231 url: loadmore.ajaxurl, 232 data: { 233 action: 'load_more_portfolio_masonary', 234 page: page 235 // Add any additional parameters if needed 236 }, 237 success: function (response) { 238 if (response) { 239 if (response.trim() !== 'No data') { 240 $('#portfolio_masonary').append(response); 241 242 $(".load-btn").removeClass("gif"); 243 } else { 244 $('#archive-load-more-portfolio-masonary').hide(); 245 } 246 } else { 247 $('#archive-load-more-portfolio-masonary').hide(); 248 } 249 loading = false; 250 }, 251 252 253 }); 254 } 255 }); 256 } 257 258 259 260 261 // Get Device width 262 let device_width = window.innerWidth; 263 264 if ($(window).width() > 1024) { 265 gsap.config({ 266 nullTargetWarn: false, 267 trialWarn: false, 268 }); 269 }; 270 $(document).on('mouseenter mouseleave mousemove', '[data-tooltip-tit]', function (e) { 271 if (e.type === 'mouseenter') { 272 createTooltip($(this)); 273 } else if (e.type === 'mouseleave') { 274 removeTooltip(); 275 } else if (e.type === 'mousemove') { 276 updateTooltipPosition(e); 277 } 278 }); 279 $(document).on({ 280 mouseenter: function () { 281 // When mouse enters the element with the attribute 'data-tooltip-sub' 282 // Create a new div with class 'div-tooltip-sub' and set its text content 283 $('<div class="div-tooltip-sub"></div>').text($(this).attr('data-tooltip-sub')).appendTo('.portfolio-info-flow-section').fadeIn(); 284 }, 285 mouseleave: function () { 286 // When mouse leaves the element 287 // Remove the div with class 'div-tooltip-sub' 288 $('.div-tooltip-sub').remove(); 289 }, 290 mousemove: function (e) { 291 // When mouse moves over the element 292 // Set the position of the div with class 'div-tooltip-sub' based on mouse coordinates 293 $('.div-tooltip-sub').css({ 294 top: e.pageY + (-20), 295 left: e.pageX + 10 296 }); 297 } 298 }, '[data-tooltip-sub]'); 299 300 function createTooltip(element) { 301 $('<div class="div-tooltip-tit"></div>').text(element.attr('data-tooltip-tit')).appendTo('.portfolio-info-flow-section').fadeIn(); 302 } 303 304 function removeTooltip() { 305 $('.div-tooltip-tit').remove(); 306 } 307 308 function updateTooltipPosition(e) { 309 $('.div-tooltip-tit').css({ 310 top: e.pageY + 13, 311 left: e.pageX + 10 312 }); 313 } 314 315 316 317 318 // Horizontal Scrolling 319 if (device_width > 1200) { 320 321 var workflow_section_3 = document.querySelector('.horizontal-scrolling-wrapper'); 322 if (workflow_section_3) { 323 324 let duration = 1, 325 sections = gsap.utils.toArray(".single-scroll"), 326 sectionIncrement = duration / (sections.length - 1), 327 tl = gsap.timeline({ 328 scrollTrigger: { 329 trigger: ".horizontal-scrolling-wrapper", 330 pin: true, 331 scrub: 1, 332 start: "-80px top", 333 end: "+=5000" 334 } 335 }); 336 337 tl.to(sections, { 338 xPercent: -100 * (sections.length - 1), 339 duration: duration, 340 ease: "none" 341 }); 342 343 sections.forEach((section, index) => { 344 let tween = gsap.from(section, { 345 opacity: 0, 346 scale: 1, 347 duration: 0.5, 348 force3D: true, 349 paused: true 350 }); 351 addSectionCallbacks(tl, { 352 start: sectionIncrement * (index - 0.99), 353 end: sectionIncrement * (index + 0.99), 354 onEnter: () => tween.play(), 355 onLeave: () => tween.reverse(), 356 onEnterBack: () => tween.play(), 357 onLeaveBack: () => tween.reverse() 358 }); 359 index || tween.progress(1); 360 }); 361 362 function addSectionCallbacks(timeline, { 363 start, 364 end, 365 param, 366 onEnter, 367 onLeave, 368 onEnterBack, 369 onLeaveBack 370 }) { 371 let trackDirection = animation => { 372 let onUpdate = animation.eventCallback("onUpdate"), 373 prevTime = animation.time(); 374 animation.direction = animation.reversed() ? -1 : 1; 375 animation.eventCallback("onUpdate", () => { 376 let time = animation.time(); 377 if (prevTime !== time) { 378 animation.direction = time < prevTime ? -1 : 1; 379 prevTime = time; 380 } 381 onUpdate && onUpdate.call(animation); 382 }); 383 }, 384 empty = v => v; 385 timeline.direction || trackDirection(timeline); 386 start >= 0 && timeline.add(() => ((timeline.direction < 0 ? onLeaveBack : onEnter) || empty)(param), start); 387 end <= timeline.duration() && timeline.add(() => ((timeline.direction < 0 ? onEnterBack : onLeave) || empty)(param), end); 388 } 389 } 390 } 391 392 jQuery('.dropdown-icon2').on('click', function () { 393 jQuery(this).toggleClass('active').next('.sub-menu').slideToggle(); 394 jQuery(this).parent().siblings().children('.sub-menu').slideUp(); 395 jQuery(this).parent().siblings().children('.active').removeClass('active'); 396 }); 397 398 // Menu Text Animation 399 document.querySelectorAll('.main-menu > li > a').forEach(button => button.innerHTML = '<div class="menu-text"><span>' + button.textContent.split('').join('</span><span>') + '</span></div>'); 400 401 setTimeout(() => { 402 var menu_text = document.querySelectorAll(".menu-text span") 403 menu_text.forEach((item) => { 404 var font_sizes = window.getComputedStyle(item, null); 405 let font_size = font_sizes.getPropertyValue("font-size"); 406 let size_in_number = parseInt(font_size.replace("px", "")); 407 let new_size = parseInt(size_in_number / 3) 408 new_size = new_size + "px" 409 if (item.innerHTML == " ") { 410 item.style.width = new_size 411 } 412 }) 413 }, 1000) 414 415 // FancyBox Js 416 $('.video1').fancybox({ 417 buttons: [ 418 "close", 419 ], 420 loop: false, 421 protect: true, 422 }); 423 $('.video4').fancybox({ 424 buttons: [ 425 "close", 426 ], 427 loop: false, 428 protect: true, 429 }); 430 431 432 // sidebar 433 $('.sidebar-btn2').on("click", function () { 434 $('.header-sidebar').addClass('slide'); 435 }); 436 $('.close-btn').on("click", function () { 437 $('.header-sidebar').removeClass('slide'); 438 }); 439 440 $('.sidebar-btn').on("click", function () { 441 $('.sidebar-menu').addClass('active'); 442 }); 443 $('.sidebar-menu-close').on("click", function () { 444 $('.sidebar-menu').removeClass('active'); 445 }); 446 447 jQuery('.dropdown-icon').on('click', function () { 448 // alert() 449 jQuery(this).toggleClass('active').next('ul, .mega-menu').slideToggle(); 450 jQuery(this).parent().siblings().children('ul, .mega-menu').slideUp(); 451 jQuery(this).parent().siblings().children('.active').removeClass('active'); 452 }); 453 454 // sticky header 455 window.addEventListener('scroll', function () { 456 const header = document.querySelector('header.header-area'); 457 header.classList.toggle("sticky", window.scrollY > 200); 458 }); 459 460 //Cart Menu Quantity button toggle 461 $(".qty-btn").on("click", function (e) { 462 e.stopPropagation(); 463 // Toggle "active" class for the current quantity button and its related elements 464 $(this).next(".quantity-area").toggleClass("active"); 465 466 // Remove "active" class from other quantity buttons and related elements 467 $(".quantity-area") 468 .not($(this).next(".quantity-area")) 469 .removeClass("active"); 470 }); 471 $(document).on("click", function (e) { 472 if ( 473 !$(e.target).closest(".quantity-area") 474 .length 475 ) { 476 // Remove "active" class from all quantity buttons and related elements 477 $(".quantity-area").removeClass("active"); 478 } 479 }); 480 481 //Counter up 482 $('.counter').counterUp({ 483 delay: 10, 484 time: 1000 485 }); 486 487 // scroll up button 488 document.addEventListener("DOMContentLoaded", function (event) { 489 490 let offset = 50; 491 let circleContainer = document.querySelector(".circle-container"); 492 let circlePath = document.querySelector('.circle-container path'); 493 494 if (circlePath) {
495 let pathLength = circlePath.getTotalLength(); 496 circlePath.style.transition = circlePath.style.WebkitTransition = 'none'; 497 circlePath.style.strokeDasharray = pathLength; 498 circlePath.style.strokeDashoffset = pathLength; 499 circlePath.getBoundingClientRect(); 500 circlePath.style.transition = circlePath.style.WebkitTransition = 'stroke-dashoffset 10ms linear'; 501 502 let updateLoader = () => { 503 504 let scrollTop = window.scrollY; 505 let docHeight = document.body.offsetHeight; 506 let winHeight = window.innerHeight; 507 let height = docHeight - winHeight; 508 let progress = pathLength - (scrollTop * pathLength / height); 509 circlePath.style.strokeDashoffset = progress; 510 511 if (scrollTop > offset) { 512 circleContainer.classList.add("active"); 513 } else { 514 circleContainer.classList.remove("active"); 515 } 516 517 } 518 circleContainer.onclick = function () { 519 window.scrollTo({ 520 top: 0, 521 behavior: 'smooth' 522 }); 523 } 524 525 window.onscroll = () => { 526 updateLoader(); 527 } 528 updateLoader(); 529 } 530 531 532 }); 533 534 /* --------------------------------------------- 535 NiceSelect 536 --------------------------------------------- */ 537 538 $('select:not(.country_select,.state_select)').niceSelect(); 539 540 //home1-banner-slider 541 var swiper = new Swiper(".banner-img-slider", { 542 slidesPerView: 1, 543 speed: 2500, 544 spaceBetween: 25, 545 effect: 'fade', // Use the fade effect
546 fadeEffect: { 547 crossFade: true, // Enable cross-fade transition 548 }, 549 autoplay: { 550 delay: 3000, // Autoplay duration in milliseconds 551 disableOnInteraction: false, 552 }, 553 navigation: { 554 nextEl: ".home1-banner-next", 555 prevEl: ".home1-banner-prev", 556 }, 557 }); 558 var swiper = new Swiper(".portfolio-slider", { 559 slidesPerView: 1, 560 speed: 1500, 561 spaceBetween: 25, 562 loop: true, 563 autoplay: { 564 delay: 2500, // Autoplay duration in milliseconds 565 disableOnInteraction: false, 566 }, 567 pagination: { 568 el: ".swiper-pagination", 569 clickable: true, 570 }, 571 breakpoints: { 572 280: { 573 slidesPerView: 1, 574 }, 575 386: { 576 slidesPerView: 1, 577 }, 578 576: { 579 slidesPerView: 1, 580 spaceBetween: 15, 581 }, 582 768: { 583 slidesPerView: 2, 584 spaceBetween: 15, 585 }, 586 992: { 587 slidesPerView: 3, 588 spaceBetween: 15, 589 }, 590 1200: { 591 slidesPerView: 3, 592 spaceBetween: 15, 593 }, 594 1400: { 595 slidesPerView: 3, 596 }, 597 } 598 }); 599 var swiper = new Swiper(".process-slider", { 600 slidesPerView: 1, 601 speed: 1500, 602 spaceBetween: 25, 603 loop: true, 604 navigation: { 605 nextEl: ".process-slider-next", 606 prevEl: ".process-slider-prev", 607 }, 608 609 breakpoints: { 610 280: { 611 slidesPerView: 1, 612 }, 613 386: { 614 slidesPerView: 1, 615 }, 616 576: { 617 slidesPerView: 1, 618 spaceBetween: 15, 619 }, 620 768: { 621 slidesPerView: 2, 622 spaceBetween: 15, 623 }, 624 992: { 625 slidesPerView: 2, 626 spaceBetween: 20, 627 }, 628 1200: { 629 slidesPerView: 3, 630 spaceBetween: 15, 631 }, 632 1400: { 633 slidesPerView: 3, 634 }, 635 } 636 }); 637 var swiper = new Swiper(".case-study-slider", { 638 slidesPerView: 1, 639 speed: 1500, 640 spaceBetween: 30, 641 loop: true, 642 navigation: { 643 nextEl: ".case-study-slider-next", 644 prevEl: ".case-study-slider-prev", 645 }, 646 647 breakpoints: { 648 280: { 649 slidesPerView: 1, 650 }, 651 386: { 652 slidesPerView: 1, 653 }, 654 576: { 655 slidesPerView: 1, 656 spaceBetween: 15, 657 }, 658 768: { 659 slidesPerView: 2, 660 spaceBetween: 15, 661 }, 662 992: { 663 slidesPerView: 1, 664 spaceBetween: 20, 665 }, 666 1200: { 667 slidesPerView: 2, 668 spaceBetween: 15, 669 }, 670 1400: { 671 slidesPerView: 2, 672 }, 673 } 674 }); 675 var swiper = new Swiper(".home1-testimonial-slider", { 676 slidesPerView: 1, 677 speed: 1500, 678 spaceBetween: 30, 679 loop: true, 680 effect: 'fade', // Use the fade effect
681 fadeEffect: { 682 crossFade: true // Enable cross-fade transition 683 }, 684 autoplay: { 685 delay: 2500, // Autoplay duration in milliseconds 686 disableOnInteraction: false, 687 }, 688 navigation: { 689 nextEl: ".case-study-slider-next", 690 prevEl: ".case-study-slider-prev", 691 }, 692 693 breakpoints: { 694 280: { 695 slidesPerView: 1, 696 }, 697 386: { 698 slidesPerView: 1, 699 }, 700 576: { 701 slidesPerView: 1, 702 spaceBetween: 15, 703 }, 704 768: { 705 slidesPerView: 1, 706 spaceBetween: 15, 707 }, 708 992: { 709 slidesPerView: 1, 710 spaceBetween: 20, 711 }, 712 1200: { 713 slidesPerView: 1, 714 spaceBetween: 15, 715 }, 716 1400: { 717 slidesPerView: 1, 718 }, 719 } 720 }); 721 var swiper = new Swiper(".home2-process-slider", { 722 slidesPerView: 1, 723 speed: 1500, 724 spaceBetween: 30, 725 grabCursor: true, 726 navigation: { 727 nextEl: ".home2-process-next", 728 prevEl: ".home2-process-prev", 729 }, 730 731 breakpoints: { 732 280: { 733 slidesPerView: 1, 734 }, 735 386: { 736 slidesPerView: 1, 737 }, 738 576: { 739 slidesPerView: 2, 740 spaceBetween: 15, 741 }, 742 768: { 743 slidesPerView: 2, 744 spaceBetween: 15, 745 }, 746 992: { 747 slidesPerView: 3, 748 spaceBetween: 20, 749 }, 750 1200: { 751 slidesPerView: 4, 752 spaceBetween: 15, 753 }, 754 1400: { 755 slidesPerView: 4, 756 }, 757 } 758 }); 759 var swiper = new Swiper(".home2-case-study-slider", { 760 slidesPerView: 1, 761 speed: 1500, 762 spaceBetween: 25, 763 loop: true, 764 pagination: { 765 el: ".swiper-pagination", 766 clickable: true, 767 }, 768 breakpoints: { 769 280: { 770 slidesPerView: 1, 771 }, 772 386: { 773 slidesPerView: 1, 774 }, 775 576: { 776 slidesPerView: 1, 777 spaceBetween: 15, 778 }, 779 768: { 780 slidesPerView: 2, 781 spaceBetween: 15, 782 }, 783 992: { 784 slidesPerView: 3, 785 spaceBetween: 15, 786 }, 787 1200: { 788 slidesPerView: 3, 789 spaceBetween: 15, 790 }, 791 1400: { 792 slidesPerView: 3, 793 }, 794 } 795 }); 796 var swiper = new Swiper(".home2-testimonial-slider", { 797 slidesPerView: 1, 798 speed: 1500, 799 spaceBetween: 25, 800 loop: true, 801 effect: 'fade', // Use the fade effect
802 fadeEffect: { 803 crossFade: true // Enable cross-fade transition 804 }, 805 autoplay: { 806 delay: 4000, // Autoplay duration in milliseconds 807 disableOnInteraction: false, 808 }, 809 navigation: { 810 nextEl: ".next-2", 811 prevEl: ".prev-2", 812 }, 813 }); 814 var swiper = new Swiper(".home3-testimonial-slider", { 815 slidesPerView: 1, 816 speed: 1500, 817 spaceBetween: 30, 818 pagination: { 819 el: '.franctional-pagi2', 820 type: "fraction", 821 }, 822 navigation: { 823 nextEl: ".home3-testimonial-next", 824 prevEl: ".home3-testimonial-prev", 825 }, 826 breakpoints: { 827 280: { 828 slidesPerView: 1, 829 }, 830 386: { 831 slidesPerView: 1, 832 }, 833 576: { 834 slidesPerView: 1, 835 spaceBetween: 15, 836 }, 837 768: { 838 slidesPerView: 2, 839 spaceBetween: 15, 840 }, 841 992: { 842 slidesPerView: 2, 843 spaceBetween: 20, 844 }, 845 1200: { 846 slidesPerView: 3, 847 spaceBetween: 15, 848 }, 849 1400: { 850 slidesPerView: 3, 851 }, 852 } 853 }); 854 var swiper = new Swiper(".home4-teams-slider", { 855 slidesPerView: 1, 856 speed: 1500, 857 spaceBetween: 30, 858 navigation: { 859 nextEl: ".home4-team-slider-next", 860 prevEl: ".home4-team-slider-prev", 861 }, 862 863 breakpoints: { 864 280: { 865 slidesPerView: 1, 866 }, 867 386: { 868 slidesPerView: 1, 869 }, 870 576: { 871 slidesPerView: 2, 872 spaceBetween: 15, 873 }, 874 768: { 875 slidesPerView: 2, 876 spaceBetween: 15, 877 }, 878 992: { 879 slidesPerView: 3, 880 spaceBetween: 20, 881 }, 882 1200: { 883 slidesPerView: 4, 884 spaceBetween: 15, 885 }, 886 1400: { 887 slidesPerView: 4, 888 }, 889 } 890 }); 891 var swiper = new Swiper(".partnership-slider", { 892 slidesPerView: 1, 893 speed: 1500, 894 spaceBetween: 30, 895 grabCursor: true, 896 breakpoints: { 897 280: { 898 slidesPerView: 1, 899 }, 900 386: { 901 slidesPerView: 1, 902 }, 903 576: { 904 slidesPerView: 2, 905 spaceBetween: 15, 906 }, 907 768: { 908 slidesPerView: 2, 909 spaceBetween: 15, 910 }, 911 992: { 912 slidesPerView: 3, 913 spaceBetween: 20, 914 }, 915 1200: { 916 slidesPerView: 4, 917 spaceBetween: 15, 918 }, 919 1400: { 920 slidesPerView: 4, 921 }, 922 } 923 }); 924 //wow js 925 jQuery(window).on('load', function () { 926 new WOW().init(); 927 window.wow = new WOW({ 928 boxClass: 'wow', 929 animateClass: 'animated', 930 offset: 0, 931 mobile: true, 932 live: true, 933 offset: 80 934 }) 935 window.wow.init(); 936 }); 937 938 // ==================== 939 // Progrees Bar 940 // ==================== 941 var skillPers = document.querySelectorAll(".experience-bar-per"); 942 943 skillPers.forEach(function (skillPer) { 944 var per = parseFloat(skillPer.getAttribute("data-per")); 945 skillPer.style.width = per + "%"; 946 947 var animatedValue = 0; 948 var startTime = null; 949 950 function animate(timestamp) { 951 if (!startTime) startTime = timestamp; 952 var progress = timestamp - startTime; 953 var stepPercentage = progress / 1000; // Dividing by duration in milliseconds (1000ms = 1s) 954 955 if (stepPercentage < 1) { 956 animatedValue = per * stepPercentage; 957 skillPer.setAttribute("data-per", Math.floor(animatedValue) + "%"); 958 requestAnimationFrame(animate); 959 } else { 960 animatedValue = per; 961 skillPer.setAttribute("data-per", Math.floor(animatedValue) + "%"); 962 } 963 } 964 requestAnimationFrame(animate); 965 }); 966 967 // services Images 968 const serviceImgItem = document.querySelectorAll(".sevices-wrap .single-services "); 969 //console.log(serviceImgItem); 970 971 function followImageCursor(event, serviceImgItem) { 972 const contentBox = serviceImgItem.getBoundingClientRect(); 973 const dx = event.clientX - contentBox.x; 974 const dy = event.clientY - contentBox.y; 975 serviceImgItem.children[2].style.transform = `translate(${dx}px, ${dy}px)`; 976 } 977 978 serviceImgItem.forEach((item, i) => { 979 item.addEventListener("mousemove", (event) => { 980 setInterval(followImageCursor(event, item), 100); 981 }); 982 }); 983 984 const serviceImgItem2 = document.querySelectorAll(".sevices-wrap2 .single-services"); 985 //console.log(serviceImgItem2); 986 987 function followImageCursor(event, serviceImgItem2) { 988 const contentBox = serviceImgItem2.getBoundingClientRect(); 989 const dx = event.clientX - contentBox.x; 990 const dy = event.clientY - contentBox.y; 991 serviceImgItem2.children[2].style.transform = `translate(${dx}px, ${dy}px) rotate(12deg)`; 992 } 993 994 serviceImgItem2.forEach((item, i) => { 995 item.addEventListener("mousemove", (event) => { 996 setInterval(followImageCursor(event, item), 100); 997 }); 998 }); 999 1000 // Round Text Animation 1001 const element = document.querySelectorAll(".badge__char"); 1002 const step = 360 / element.length; 1003 1004 element.forEach((elem, i) => { 1005 elem.style.setProperty('--char-rotate', (i * step) + 'deg'); 1006 }) 1007 1008 // Button Bounce animation 1009 let arr1 = gsap.utils.toArray("#btn_wrapper") 1010 let arr2 = gsap.utils.toArray(".btn_wrapper") 1011 const all_buttons = arr1.concat(arr2); 1012 all_buttons.forEach((btn) => { 1013 if (!(btn.classList.contains("banner-btn"))) { 1014 gsap.from(btn, { 1015 scrollTrigger: { 1016 trigger: btn, 1017 start: "top center+=150", 1018 markers: false, 1019 }, 1020 opacity: 0, 1021 y: -70, 1022 ease: "bounce", 1023 duration: 1.5, 1024 }) 1025 } 1026 }) 1027 1028 // Slick Slider 1029 $(".slider").slick({ 1030 infinite: true, 1031 centerMode: false,
1032 arrows: false, 1033 dots: false, 1034 autoplay: false, 1035 speed: 800, 1036 slidesToScroll: 1, 1037 vertical: true, 1038 verticalSwiping: true, 1039 slidesToShow: 1, 1040 slidesToScroll: 1, 1041 1042 }); 1043 1044 //ticking machine 1045 var percentTime; 1046 var tick; 1047 var time = .5; 1048 var progressBarIndex = 0; 1049 1050 $('.progressBarContainer .progressBar').each(function (index) { 1051 var progress = "<div class='inProgress inProgress" + index + "'></div>"; 1052 $(this).html(progress); 1053 }); 1054 1055 function startProgressbar() { 1056 resetProgressbar(); 1057 percentTime = 0; 1058 tick = setInterval(interval, 10); 1059 } 1060 1061 function interval() { 1062 if (($('.slider .slick-track div[data-slick-index="' + progressBarIndex + '"]').attr("aria-hidden")) === "true") { 1063 progressBarIndex = $('.slider .slick-track div[aria-hidden="false"]').data("slickIndex"); 1064 startProgressbar(); 1065 } else { 1066 percentTime += 1 / (time + 5); 1067 $('.inProgress' + progressBarIndex).css({ 1068 width: percentTime + "%" 1069 }); 1070 if (percentTime >= 100) { 1071 $('.single-item').slick('slickNext'); 1072 progressBarIndex++; 1073 if (progressBarIndex > 2) { 1074 progressBarIndex = 0; 1075 } 1076 startProgressbar(); 1077 } 1078 } 1079 } 1080 1081 function resetProgressbar() { 1082 $('.inProgress').css({ 1083 width: 0 + '%' 1084 }); 1085 clearInterval(tick); 1086 } 1087 startProgressbar(); 1088 1089 //Marquee Text 1090 1091 const marquee = document.querySelector('.marquee_text'); 1092 if (marquee) { 1093 $(".marquee_text").marquee({ 1094 direction: "left", 1095 duration: 45000, 1096 gap: 50, 1097 delayBeforeStart: 0, 1098 duplicated: true, 1099 startVisible: true, 1100 }); 1101 } 1102 const marquee2 = document.querySelector('.marquee_text2'); 1103 if (marquee2) { 1104 $(".marquee_text2").marquee({ 1105 direction: "left", 1106 duration: 25000, 1107 gap: 50, 1108 delayBeforeStart: 0, 1109 duplicated: true, 1110 startVisible: true, 1111 }); 1112 } 1113 /* --------------------------------------------- 1114 Text animation Morphext 1115 --------------------------------------------- */ 1116 const text_type = document.querySelector('.text-type'); 1117 if (text_type) { 1118 var typing = new Typed(".text-type", { 1119 strings: theme_options.animate_text, 1120 typeSpeed: 120, 1121 backSpeed: 70, 1122 loop: true, 1123 }); 1124 } 1125 1126 1127 1128 1129}(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.