(function ($) { "use strict"; /*============================================= = Preloader = =============================================*/ function preloader() { $('#preloader').delay(0).fadeOut(); }; $(window).on('load', function () { preloader(); mainSlider(); wowAnimation(); aosAnimation(); tg_title_animation(); }); /*============================================= = Mobile Menu = =============================================*/ //SubMenu Dropdown Toggle if ($('.menu-area li.menu-item-has-children ul').length) { $('.menu-area .navigation li.menu-item-has-children').append(''); } //Mobile Nav Hide Show if ($('.mobile-menu').length) { var mobileMenuContent = $('.menu-area .main-menu').html(); $('.mobile-menu .menu-box .menu-outer').append(mobileMenuContent); //Dropdown Button $('.mobile-menu li.menu-item-has-children .dropdown-btn').on('click', function () { $(this).toggleClass('open'); $(this).prev('ul').slideToggle(300); }); //Menu Toggle Btn $('.mobile-nav-toggler').on('click', function () { $('body').addClass('mobile-menu-visible'); }); //Menu Toggle Btn $('.menu-backdrop, .mobile-menu .close-btn').on('click', function () { $('body').removeClass('mobile-menu-visible'); }); } /*============================================= = Menu sticky & Scroll to top = =============================================*/ $(window).on('scroll', function () { var scroll = $(window).scrollTop(); if (scroll < 245) { $("#sticky-header").removeClass("sticky-menu"); $('.scroll-to-target').removeClass('open'); $("#header-fixed-height").removeClass("active-height"); } else { $("#sticky-header").addClass("sticky-menu"); $('.scroll-to-target').addClass('open'); $("#header-fixed-height").addClass("active-height"); } }); /*============================================= = Scroll Up = =============================================*/ if ($('.scroll-to-target').length) { $(".scroll-to-target").on('click', function () { var target = $(this).attr('data-target'); // animate $('html, body').animate({ scrollTop: $(target).offset().top }, 1000); }); } /*============================================= = Header Search = =============================================*/ $(".header-search > a").on('click', function () { $(".search-popup-wrap").slideToggle(); return false; }); $(".search-close").on('click', function () { $(".search-popup-wrap").slideUp(500); }); /*============================================= = Offcanvas Menu = =============================================*/ $(".menu-tigger").on("click", function () { $(".extra-info,.offcanvas-overly").addClass("active"); return false; }); $(".menu-close,.offcanvas-overly").on("click", function () { $(".extra-info,.offcanvas-overly").removeClass("active"); }); /*============================================= = Data Background = =============================================*/ $("[data-background]").each(function () { $(this).css("background-image", "url(" + $(this).attr("data-background") + ")") }) /*============================================= = Main Slider = =============================================*/ function mainSlider() { var BasicSlider = $('.slider-active'); BasicSlider.on('init', function (e, slick) { var $firstAnimatingElements = $('.single-slider:first-child').find('[data-animation]'); doAnimations($firstAnimatingElements); }); BasicSlider.on('beforeChange', function (e, slick, currentSlide, nextSlide) { var $animatingElements = $('.single-slider[data-slick-index="' + nextSlide + '"]').find('[data-animation]'); doAnimations($animatingElements); }); BasicSlider.slick({ autoplay: false, autoplaySpeed: 10000, dots: false, fade: true, arrows: false, responsive: [ { breakpoint: 767, settings: { dots: false, arrows: false } } ] }); function doAnimations(elements) { var animationEndEvents = 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend'; elements.each(function () { var $this = $(this); var $animationDelay = $this.data('delay'); var $animationType = 'animated ' + $this.data('animation'); $this.css({ 'animation-delay': $animationDelay, '-webkit-animation-delay': $animationDelay }); $this.addClass($animationType).one(animationEndEvents, function () { $this.removeClass($animationType); }); }); } } /*============================================= = Brand Active = =============================================*/ $('.brand-active').slick({ dots: false, infinite: true, speed: 1000, autoplay: true, arrows: false, slidesToShow: 5, slidesToScroll: 1, responsive: [ { breakpoint: 1200, settings: { slidesToShow: 5, slidesToScroll: 1, infinite: true, } }, { breakpoint: 992, settings: { slidesToShow: 4, slidesToScroll: 1 } }, { breakpoint: 767, settings: { slidesToShow: 3, slidesToScroll: 1, arrows: false, } }, { breakpoint: 575, settings: { slidesToShow: 2, slidesToScroll: 1, arrows: false, } }, ] }); /*============================================= = services Active = =============================================*/ $('.services-active').slick({ dots: true, infinite: true, speed: 1000, autoplay: true, arrows: false, slidesToShow: 3, slidesToScroll: 1, responsive: [ { breakpoint: 1200, settings: { slidesToShow: 3, slidesToScroll: 1, infinite: true, } }, { breakpoint: 992, settings: { slidesToShow: 2, slidesToScroll: 1 } }, { breakpoint: 767, settings: { slidesToShow: 1, slidesToScroll: 1, arrows: false, } }, { breakpoint: 575, settings: { slidesToShow: 1, slidesToScroll: 1, arrows: false, } }, ] }); /*============================================= = Brand Active = =============================================*/ $('.testimonial-active').slick({ dots: false, infinite: true, speed: 1000, autoplay: true, fade: true, arrows: true, prevArrow: '', nextArrow: '', appendArrows: ".testimonial-nav", slidesToShow: 1, slidesToScroll: 1, responsive: [ { breakpoint: 1200, settings: { slidesToShow: 1, slidesToScroll: 1, infinite: true, } }, { breakpoint: 992, settings: { slidesToShow: 1, slidesToScroll: 1 } }, { breakpoint: 767, settings: { slidesToShow: 1, slidesToScroll: 1, } }, { breakpoint: 575, settings: { slidesToShow: 1, slidesToScroll: 1, } }, ] }); /*============================================= = testimonial Active = =============================================*/ $('.testimonial-active-two').slick({ dots: false, infinite: true, speed: 1000, autoplay: true, arrows: true, prevArrow: '', nextArrow: '', appendArrows: ".testimonial-nav-two", slidesToShow: 2, slidesToScroll: 1, responsive: [ { breakpoint: 1200, settings: { slidesToShow: 2, slidesToScroll: 1, infinite: true, } }, { breakpoint: 992, settings: { slidesToShow: 1, slidesToScroll: 1 } }, { breakpoint: 767, settings: { slidesToShow: 1, slidesToScroll: 1, } }, { breakpoint: 575, settings: { slidesToShow: 1, slidesToScroll: 1, } }, ] }); /*============================================= = testimonial Active = =============================================*/ $('.testimonial-active-three').slick({ dots: false, infinite: true, speed: 1000, autoplay: true, fade: true, arrows: true, prevArrow: '', nextArrow: '', appendArrows: ".testimonial-nav-three", slidesToShow: 1, slidesToScroll: 1, responsive: [ { breakpoint: 1200, settings: { slidesToShow: 1, slidesToScroll: 1, infinite: true, } }, { breakpoint: 992, settings: { slidesToShow: 1, slidesToScroll: 1 } }, { breakpoint: 767, settings: { slidesToShow: 1, slidesToScroll: 1, } }, { breakpoint: 575, settings: { slidesToShow: 1, slidesToScroll: 1, } }, ] }); /*============================================= = testimonial Active = =============================================*/ $('.testimonial-active-four').slick({ dots: false, infinite: true, speed: 1000, autoplay: true, arrows: true, prevArrow: '', nextArrow: '', appendArrows: ".testimonial-nav-four", slidesToShow: 1, slidesToScroll: 1, responsive: [ { breakpoint: 1200, settings: { slidesToShow: 1, slidesToScroll: 1, infinite: true, } }, { breakpoint: 992, settings: { slidesToShow: 1, slidesToScroll: 1 } }, { breakpoint: 767, settings: { slidesToShow: 1, slidesToScroll: 1, } }, { breakpoint: 575, settings: { slidesToShow: 1, slidesToScroll: 1, } }, ] }); /*============================================= = testimonial Active = =============================================*/ $('.testimonial-active-five').slick({ dots: false, infinite: true, speed: 1000, autoplay: true, arrows: true, prevArrow: '', nextArrow: '', appendArrows: ".testimonial-nav-five", vertical: true, slidesToShow: 1, slidesToScroll: 1, responsive: [ { breakpoint: 1200, settings: { slidesToShow: 1, slidesToScroll: 1, infinite: true, } }, { breakpoint: 992, settings: { slidesToShow: 1, slidesToScroll: 1 } }, { breakpoint: 767, settings: { slidesToShow: 1, slidesToScroll: 1, } }, { breakpoint: 575, settings: { slidesToShow: 1, slidesToScroll: 1, } }, ] }); /*============================================= = Project Active = =============================================*/ if (jQuery(".project-active").length > 0) { let courses = new Swiper(".project-active", { slidesPerView: 1, spaceBetween: 30, loop: true, autoplay: false, breakpoints: { 500: { slidesPerView: 2, spaceBetween: 20, }, 768: { slidesPerView: 2.5, spaceBetween: 20, }, 992: { slidesPerView: 3.5, spaceBetween: 20, }, 1200: { slidesPerView: 3.5, spaceBetween: 20, }, 1500: { slidesPerView: 4, spaceBetween: 24, }, }, // If we need pagination pagination: { el: ".project-swiper-pagination", clickable: true, }, // Navigation arrows navigation: { nextEl: ".swiper-button-next", prevEl: ".swiper-button-prev", }, // And if we need scrollbar scrollbar: { el: ".swiper-scrollbar", }, }); } /*============================================= = pricing Active = =============================================*/ $(".pricing-tab-switcher, .tab-btn").on("click", function () { $(".pricing-tab-switcher, .tab-btn").toggleClass("active"), $(".pricing-tab").toggleClass("seleceted"), $(".pricing-price, .pricing-price-two").toggleClass("change-subs-duration"); }); /*============================================= = services Active = =============================================*/ $('.services-item-two').hover(function () { $(this).find('.services-content-two p').slideToggle(300); return false; }); /*============================================= = Team Social Active = =============================================*/ $('.social-toggle-icon').on('click', function () { $(this).parent().find('ul').slideToggle(400); $(this).find('i').toggleClass('fa-times'); return false; }); /*============================================= = Partical JS = =============================================*/ if ($('.banner-area-three, .banner-area-five').length) { const colors = ["#FF4D4D", "#1AD6FF", "#FFCD4D", "#BB6BD9", "#1A66FF"]; const numBalls = 30; const balls = []; for (let i = 0; i < numBalls; i++) { let ball = document.createElement("div"); ball.classList.add("ball"); ball.style.background = colors[Math.floor(Math.random() * colors.length)]; ball.style.left = `${Math.floor(Math.random() * 100)}%`; ball.style.top = `${Math.floor(Math.random() * 100)}%`; ball.style.transform = `scale(${Math.random()})`; ball.style.width = `${Math.random() * 10}px`; ball.style.height = ball.style.width; balls.push(ball); $('.banner-area-three, .banner-area-five').append(ball); } balls.forEach((el, i, ra) => { let to = { x: Math.random() * (i % 2 === 0 ? -10 : 11), y: Math.random() * 12 }; let anim = el.animate( [ { transform: "translate(0, 0)" }, { transform: `translate(${to.x}rem, ${to.y}rem)` } ], { duration: (Math.random() + 1) * 2000, direction: "alternate", fill: "both", iterations: Infinity, easing: "ease-in-out" } ); }); } /*============================================= = Partical JS = =============================================*/ if ($('.about-area-six').length) { const colors = ["#FF4D4D", "#1AD6FF", "#FFCD4D", "#BB6BD9", "#1A66FF"]; const numBalls = 30; const balls = []; for (let i = 0; i < numBalls; i++) { let ball = document.createElement("div"); ball.classList.add("ball"); ball.style.background = colors[Math.floor(Math.random() * colors.length)]; ball.style.left = `${Math.floor(Math.random() * 100)}%`; ball.style.top = `${Math.floor(Math.random() * 100)}%`; ball.style.transform = `scale(${Math.random()})`; ball.style.width = `${Math.random() * 10}px`; ball.style.height = ball.style.width; balls.push(ball); $('.about-area-six').append(ball); } balls.forEach((el, i, ra) => { let to = { x: Math.random() * (i % 2 === 0 ? -10 : 11), y: Math.random() * 12 }; let anim = el.animate( [ { transform: "translate(0, 0)" }, { transform: `translate(${to.x}rem, ${to.y}rem)` } ], { duration: (Math.random() + 1) * 2000, direction: "alternate", fill: "both", iterations: Infinity, easing: "ease-in-out" } ); }); } /*============================================= = Partical JS = =============================================*/ if ($('.testimonial-area-five').length) { const colors = ["#FF4D4D", "#1AD6FF", "#FFCD4D", "#BB6BD9", "#1A66FF"]; const numBalls = 30; const balls = []; for (let i = 0; i < numBalls; i++) { let ball = document.createElement("div"); ball.classList.add("ball"); ball.style.background = colors[Math.floor(Math.random() * colors.length)]; ball.style.left = `${Math.floor(Math.random() * 100)}%`; ball.style.top = `${Math.floor(Math.random() * 100)}%`; ball.style.transform = `scale(${Math.random()})`; ball.style.width = `${Math.random() * 10}px`; ball.style.height = ball.style.width; balls.push(ball); $('.testimonial-area-five').append(ball); } balls.forEach((el, i, ra) => { let to = { x: Math.random() * (i % 2 === 0 ? -10 : 11), y: Math.random() * 12 }; let anim = el.animate( [ { transform: "translate(0, 0)" }, { transform: `translate(${to.x}rem, ${to.y}rem)` } ], { duration: (Math.random() + 1) * 2000, direction: "alternate", fill: "both", iterations: Infinity, easing: "ease-in-out" } ); }); } /*============================================= = easyPieChart Active = =============================================*/ function easyPieChart() { $('.circle-item').on('inview', function (event, isInView) { if (isInView) { $('.chart').easyPieChart({ scaleLength: 0, lineWidth: 10, trackWidth: 10, size: 160, rotate: 360, animate: 3000, trackColor: '#2A3E66', barColor: '#0055FF', }); } }); } easyPieChart(); /*------------------------------------- Intersection Observer -------------------------------------*/ if (!!window.IntersectionObserver) { let observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add("active-animation"); //entry.target.src = entry.target.dataset.src; observer.unobserve(entry.target); } }); }, { rootMargin: "0px 0px -100px 0px" }); document.querySelectorAll('.has-animation').forEach(block => { observer.observe(block) }); } else { document.querySelectorAll('.has-animation').forEach(block => { block.classList.remove('has-animation') }); } /*============================================= = Jarallax Active = =============================================*/ $('.jarallax').jarallax({ speed: 0.2, }); /*============================================= = Odometer Active = =============================================*/ $('.odometer').appear(function (e) { var odo = $(".odometer"); odo.each(function () { var countNumber = $(this).attr("data-count"); $(this).html(countNumber); }); }); /*============================================= = Magnific Popup = =============================================*/ $('.popup-image').magnificPopup({ type: 'image', gallery: { enabled: true } }); /* magnificPopup video view */ $('.popup-video').magnificPopup({ type: 'iframe' }); /*============================================= = Wow Active = =============================================*/ function wowAnimation() { var wow = new WOW({ boxClass: 'wow', animateClass: 'animated', offset: 0, mobile: false, live: true }); wow.init(); } /*============================================= = Aos Active = =============================================*/ function aosAnimation() { AOS.init({ duration: 1000, mirror: true, once: true, disable: 'mobile', }); } })(jQuery);