(function ($) { "use strict"; /*-------------------------------------------------------------- RegisterPlugin, ScrollTrigger, SplitText --------------------------------------------------------------*/ gsap.registerPlugin(ScrollTrigger, SplitText); gsap.config({ nullTargetWarn: false, trialWarn: false }); /*-------------------------------------------------------------- Time picker --------------------------------------------------------------*/ function timepicker() { if ($('input[name="time"]').length) { $('input[name="time"]').ptTimeSelect(); } } /*-------------------------------------------------------------- FullHeight --------------------------------------------------------------*/ function fullHeight() { $('.full-height').css("height", $(window).height()); } /*-------------------------------------------------------------- Preloader --------------------------------------------------------------*/ function handlePreloader() { if ($('.loader-wrap').length) { $('.loader-wrap').delay(1000).fadeOut(1000); } TweenMax.to($(".loader-wrap .overlay"), 1.2, { force3D: true, left: "100%", ease: Expo.easeInOut, }); } /*-------------------------------------------------------------- Scrool To Top --------------------------------------------------------------*/ function handleScrollbar() { const bHeight = $('body').height(); const scrolled = $(window).innerHeight() + $(window).scrollTop(); let percentage = ((scrolled / bHeight) * 100); if (percentage > 100) percentage = 100; $('.scroll-top-inner .bar-inner').css('width', percentage + '%'); } /*-------------------------------------------------------------- Swiper slider --------------------------------------------------------------*/ function thmSwiperInit() { if ($(".thm-swiper__slider").length) { $(".thm-swiper__slider").each(function () { let elm = $(this); let options = elm.data('swiper-options'); let thmSwiperSlider = new Swiper(elm, options); }); } } /*-------------------------------------------------------------- Dynamic Current Menu Class selector --------------------------------------------------------------*/ function dynamicCurrentMenuClass(selector) { let FileName = window.location.href.split("/").reverse()[0]; selector.find("li").each(function () { let anchor = $(this).find("a"); if ($(anchor).attr("href") == FileName) { $(this).addClass("current"); } }); // if any li has .current elmnt add class selector.children("li").each(function () { if ($(this).find(".current").length) { $(this).addClass("current"); } }); // if no file name return if ("" == FileName) { selector.find("li").eq(0).addClass("current"); } } /*-------------------------------------------------------------- Project / masonary Active --------------------------------------------------------------*/ function projectMasonaryLayout() { if ($('.masonary-layout').length) { $('.masonary-layout').isotope({ layoutMode: 'masonry' }); } if ($('.post-filter').length) { $('.post-filter li').children('.filter-text').on('click', function () { var Self = $(this); var selector = Self.parent().attr('data-filter'); $('.post-filter li').removeClass('active'); Self.parent().addClass('active'); $('.filter-layout').isotope({ filter: selector, animationOptions: { duration: 500, easing: 'linear', queue: false } }); return false; }); } if ($('.post-filter.has-dynamic-filters-counter').length) { // var allItem = $('.single-filter-item').length; var activeFilterItem = $('.post-filter.has-dynamic-filters-counter').find('li'); activeFilterItem.each(function () { var filterElement = $(this).data('filter'); var count = $('.filter-layout').find(filterElement).length; $(this).children('.filter-text').append('' + count + ''); }); } } /*-------------------------------------------------------------- Masonary Active --------------------------------------------------------------*/ function enableMasonry() { if ($('.masonry-items-container').length) { var winDow = $(window); // Needed variables var $container = $('.masonry-items-container'); $container.isotope({ itemSelector: '.masonry-item', masonry: { columnWidth: '.gallery-item' }, animationOptions: { duration: 500, easing: 'linear' } }); winDow.bind('resize', function () { $container.isotope({ itemSelector: '.masonry-item', animationOptions: { duration: 500, easing: 'linear', queue: false } }); }); } } /*-------------------------------------------------------------- Smooth Menu Scroll Active --------------------------------------------------------------*/ function SmoothMenuScroll() { var anchor = $(".scrollToLink"); if (anchor.length) { anchor.children("a").bind("click", function (event) { if ($(window).scrollTop() > 10) { var headerH = "90"; } else { var headerH = "90"; } var target = $(this); $("html, body") .stop() .animate({ scrollTop: $(target.attr("href")).offset().top - headerH + "px" }, 900, "easeInSine" ); anchor.removeClass("current"); anchor.removeClass("current-menu-ancestor"); anchor.removeClass("current_page_item"); anchor.removeClass("current-menu-parent"); target.parent().addClass("current"); event.preventDefault(); }); } } /*-------------------------------------------------------------- One Page Menu Scroll Active --------------------------------------------------------------*/ function OnePageMenuScroll() { var windscroll = $(window).scrollTop(); if (windscroll >= 117) { var menuAnchor = $(".one-page-scroll-menu .scrollToLink").children("a"); menuAnchor.each(function () { var sections = $(this).attr("href"); $(sections).each(function () { if ($(this).offset().top <= windscroll + 100) { var Sectionid = $(sections).attr("id"); $(".one-page-scroll-menu").find("li").removeClass("current"); $(".one-page-scroll-menu").find("li").removeClass("current-menu-ancestor"); $(".one-page-scroll-menu").find("li").removeClass("current_page_item"); $(".one-page-scroll-menu").find("li").removeClass("current-menu-parent"); $(".one-page-scroll-menu") .find("a[href*=\\#" + Sectionid + "]") .parent() .addClass("current"); } }); }); } else { $(".one-page-scroll-menu li.current").removeClass("current"); $(".one-page-scroll-menu li:first").addClass("current"); } } /*-------------------------------------------------------------- Image Hover Moving Script Active --------------------------------------------------------------*/ function onHoverthreeDmovement() { var tiltBlock = $('.js-tilt'); if (tiltBlock.length) { $('.js-tilt').tilt({ maxTilt: 20, perspective: 700, glare: true, maxGlare: 0 }); } } /*-------------------------------------------------------------- Active Background --------------------------------------------------------------*/ function activeBackground() { $('.hover-background-active .blog-style2__single').hover(function () { $(this) .parents('.hover-background-active') .addClass('active-item') .siblings() .removeClass('active-item'); }); } /*-------------------------------------------------------------- Dynamic Background --------------------------------------------------------------*/ function dynamicBackground() { $('[data-src]').each(function () { var src = $(this).attr('data-src'); $(this).css({ 'background-image': 'url(' + src + ')', }); }); } /*-------------------------------------------------------------- Main Menu For Mobile Nav Toogle Button Script --------------------------------------------------------------*/ if ($(".mobile-nav__toggler").length) { $(".mobile-nav__toggler").on("click", function (e) { e.preventDefault(); $(".mobile-nav__wrapper").toggleClass("expanded"); $("body").toggleClass("locked"); }); } /*-------------------------------------------------------------- Main Menu Mobile Nav Script --------------------------------------------------------------*/ if ($(".main-menu__list").length && $(".mobile-nav__container").length) { let navContent = document.querySelector(".main-menu__list").outerHTML; let mobileNavContainer = document.querySelector(".mobile-nav__container"); mobileNavContainer.innerHTML = navContent; } /*-------------------------------------------------------------- Main Menu Mobile Nav Dropdown Script --------------------------------------------------------------*/ if ($(".mobile-nav__container .main-menu__list").length) { let dropdownAnchor = $( ".mobile-nav__container .main-menu__list .dropdown > a" ); dropdownAnchor.each(function () { let self = $(this); let toggleBtn = document.createElement("BUTTON"); toggleBtn.setAttribute("aria-label", "dropdown toggler"); toggleBtn.innerHTML = ""; self.append(function () { return toggleBtn; }); self.find("button").on("click", function (e) { e.preventDefault(); let self = $(this); self.toggleClass("expanded"); self.parent().toggleClass("expanded"); self.parent().parent().children("ul").slideToggle(); }); }); } /*-------------------------------------------------------------- Sticky Header Script --------------------------------------------------------------*/ if ($(".sticky-header__content").length) { let navContent = document.querySelector(".main-menu").innerHTML; let mobileNavContainer = document.querySelector(".sticky-header__content"); mobileNavContainer.innerHTML = navContent; } /*-------------------------------------------------------------- Dynamic current Menu class Active Script --------------------------------------------------------------*/ if ($(".main-menu__list").length) { let mainNavUL = $(".main-menu__list"); dynamicCurrentMenuClass(mainNavUL); } /*-------------------------------------------------------------- Dynamic Service Details Page Sidebar Menu class Active Script --------------------------------------------------------------*/ if ($(".service-details__sidebar-service-list").length) { let mainNavUL = $(".service-details__sidebar-service-list"); dynamicCurrentMenuClass(mainNavUL); } /*-------------------------------------------------------------- Search Toggler Script Active --------------------------------------------------------------*/ if ($(".search-toggler").length) { $(".search-toggler").on("click", function (e) { e.preventDefault(); $(".search-popup").toggleClass("active"); $(".mobile-nav__wrapper").removeClass("expanded"); $("body").toggleClass("locked"); }); } /*-------------------------------------------------------------- Odometer Script Active --------------------------------------------------------------*/ if ($(".odometer").length) { var odo = $(".odometer"); odo.each(function () { $(this).appear(function () { var countNumber = $(this).attr("data-count"); $(this).html(countNumber); }); }); } /*-------------------------------------------------------------- Wow Script Active --------------------------------------------------------------*/ if ($(".wow").length) { var wow = new WOW({ boxClass: "wow", // animated element css class (default is wow) animateClass: "animated", // animation css class (default is animated) mobile: true, // trigger animations on mobile devices (default is true) live: true // act on asynchronously loaded content (default is true) }); wow.init(); } //Accordion Box if ($('.accordion-box').length) { $(".accordion-box").on('click', '.acc-btn', function () { var outerBox = $(this).parents('.accordion-box'); var target = $(this).parents('.accordion'); if ($(this).hasClass('active') !== true) { $(outerBox).find('.accordion .acc-btn').removeClass('active'); } if ($(this).next('.acc-content').is(':visible')) { return false; } else { $(this).addClass('active'); $(outerBox).children('.accordion').removeClass('active-block'); $(outerBox).find('.accordion').children('.acc-content').slideUp(300); target.addClass('active-block'); $(this).next('.acc-content').slideDown(300); } }); } // Service Style1 Tab if ($('.about-style4__tab').length) { $('.about-style4__tab .tabs-button-box .tab-btn-item').on('click', function (e) { e.preventDefault(); var target = $($(this).attr('data-tab')); if ($(target).hasClass('actve-tab')) { return false; } else { $('.about-style4__tab .tabs-button-box .tab-btn-item').removeClass('active-btn-item'); $(this).addClass('active-btn-item'); $('.about-style4__tab .tabs-content-box .tab-content-box-item').removeClass('tab-content-box-item-active'); $(target).addClass('tab-content-box-item-active'); } }); } // Service Style1 Tab if ($('.tab-box-style1').length) { $('.tab-box-style1 .tabs-button-box .tab-btn-item').on('click', function (e) { e.preventDefault(); var target = $($(this).attr('data-tab')); if ($(target).hasClass('actve-tab')) { return false; } else { $('.tab-box-style1 .tabs-button-box .tab-btn-item').removeClass('active-btn-item'); $(this).addClass('active-btn-item'); $('.tab-box-style1 .tabs-content-box .tab-content-box-item').removeClass('tab-content-box-item-active'); $(target).addClass('tab-content-box-item-active'); } }); } if ($(".marquee_mode").length) { $('.marquee_mode').marquee({ speed: 40, gap: 0, delayBeforeStart: 0, direction: 'left', duplicated: true, pauseOnHover: true, startVisible: true, }); } if ($(".marquee_mode-language").length) { $('.marquee_mode-language').marquee({ speed: 40, gap: 0, delayBeforeStart: 0, direction: 'right', duplicated: true, pauseOnHover: true, startVisible: true, }); } // Scroll To Explore Div if ($('.scroll-to-explore').length) { $(".scroll-to-explore").on('click', function () { var target = $(this).attr('data-target'); // animate $('html, body').animate({ scrollTop: $(target).offset().top }, 1500); }); } // Tab Box if ($('.tabs-box').length) { $('.tabs-box .tab-buttons .tab-btn').on('click', function (e) { e.preventDefault(); var target = $($(this).attr('data-tab')); if ($(target).is(':visible')) { return false; } else { target.parents('.tabs-box').find('.tab-buttons').find('.tab-btn').removeClass('active-btn'); $(this).addClass('active-btn'); target.parents('.tabs-box').find('.tabs-content').find('.tab').fadeOut(0); target.parents('.tabs-box').find('.tabs-content').find('.tab').removeClass('active-tab'); $(target).fadeIn(300); $(target).addClass('active-tab'); } }); } // Price Filter if ($('.price-ranger').length) { $('.price-ranger #slider-range').slider({ range: true, min: 10, max: 200, values: [11, 99], slide: function (event, ui) { $('.price-ranger .ranger-min-max-block .min').val('$' + ui.values[0]); $('.price-ranger .ranger-min-max-block .max').val('$' + ui.values[1]); } }); $('.price-ranger .ranger-min-max-block .min').val('$' + $('.price-ranger #slider-range').slider('values', 0)); $('.price-ranger .ranger-min-max-block .max').val('$' + $('.price-ranger #slider-range').slider('values', 1)); } //Fact Counter + Text Count if ($(".count-box").length) { $(".count-box").appear( function () { var $t = $(this), n = $t.find(".count-text").attr("data-stop"), r = parseInt($t.find(".count-text").attr("data-speed"), 10); if (!$t.hasClass("counted")) { $t.addClass("counted"); $({ countNum: $t.find(".count-text").text() }).animate({ countNum: n }, { duration: r, easing: "linear", step: function () { $t.find(".count-text").text(Math.floor(this.countNum)); }, complete: function () { $t.find(".count-text").text(this.countNum); } }); } }, { accY: 0 } ); } // Cart Touch Spin if ($('.quantity-spinner').length) { $("input.quantity-spinner").TouchSpin({ verticalbuttons: true }); } // === Round Progress Bar=== if ($('.dial').length) { $('.dial').appear(function () { var elm = $(this); var color = elm.attr('data-fgColor'); var perc = elm.attr('value'); elm.knob({ 'value': 0, 'min': 0, 'max': 100, 'skin': 'tron', 'readOnly': true, 'thickness': 0.15, 'dynamicDraw': true, 'displayInput': false }); $({ value: 0 }).animate({ value: perc }, { duration: 2000, easing: 'swing', progress: function () { elm.val(Math.ceil(this.value)).trigger('change'); } }); $(this).append(function () {}); }, { accY: 20 }); } //Progress Bar / Levels if ($('.progress-levels .progress-box .bar-fill').length) { $(".progress-box .bar-fill").each(function () { $('.progress-box .bar-fill').appear(function () { var progressWidth = $(this).attr('data-percent'); $(this).css('width', progressWidth + '%'); }); }, { accY: 0 }); } //====== Magnific Popup if ($(".video-popup").length) { $(".video-popup").magnificPopup({ type: "iframe", mainClass: "mfp-fade", removalDelay: 160, preloader: true, fixedContentPos: false }); } if ($(".img-popup").length) { var groups = {}; $(".img-popup").each(function () { var id = parseInt($(this).attr("data-group"), 10); if (!groups[id]) { groups[id] = []; } groups[id].push(this); }); $.each(groups, function () { $(this).magnificPopup({ type: "image", closeOnContentClick: true, closeBtnInside: false, gallery: { enabled: true } }); }); } //LightBox / Fancybox if ($('.lightbox-image').length) { $('.lightbox-image').fancybox({ openEffect: 'fade', closeEffect: 'fade', youtube: { controls: 0, showinfo: 0 }, helpers: { media: {} } }); } // AOS Animation if ($("[data-aos]").length) { AOS.init({ duration: '1000', disable: 'false', easing: 'ease', mirror: true }); } if ($("#datepicker").length) { $("#datepicker").datepicker(); } if ($('.paroller').length) { $('.paroller').paroller({ factor: -0.1, // multiplier for scrolling speed and offset, +- values for direction control factorLg: -0.1, // multiplier for scrolling speed and offset if window width is less than 1200px, +- values for direction control type: 'foreground', // background, foreground direction: 'vertical' // vertical, horizontal }); } if ($('.paroller-2').length) { $('.paroller-2').paroller({ factor: 0.05, // multiplier for scrolling speed and offset, +- values for direction control factorLg: 0.05, // multiplier for scrolling speed and offset if window width is less than 1200px, +- values for direction control type: 'foreground', // background, foreground direction: 'horizontal' // vertical, horizontal }); } if ($(".project-style2__box li").length) { $(".project-style2__box li").each(function () { let self = $(this); self.on("mouseenter", function () { console.log($(this)); $(".project-style2__box li").removeClass("active"); $(this).addClass("active"); }); }); } // Switcher Tabs Box if ($('.switcher-tabs-box').length) { $('.switcher-tabs-box .tab-buttons .tab-btn').on('click', function (e) { e.preventDefault(); var target = $($(this).attr('data-tab')); if ($(target).is(':visible')) { return false; } else { target.parents('.switcher-tabs-box').find('.tab-buttons').find('.tab-btn').removeClass('active-btn'); $(this).addClass('active-btn'); target.parents('.switcher-tabs-box').find('.tabs-content').find('.tab').fadeOut(0); target.parents('.switcher-tabs-box').find('.tabs-content').find('.tab').removeClass('active-tab'); $(target).fadeIn(50); $(target).addClass('active-tab'); } }); } // Animation gsap function title_animation() { var tg_var = jQuery('.sec-title-animation'); if (!tg_var.length) { return; } const quotes = document.querySelectorAll(".sec-title-animation .title-animation"); quotes.forEach(quote => { //Reset if needed if (quote.animation) { quote.animation.progress(1).kill(); quote.split.revert(); } var getclass = quote.closest('.sec-title-animation').className; var animation = getclass.split('animation-'); if (animation[1] == "style4") return quote.split = new SplitText(quote, { type: "lines,words,chars", linesClass: "split-line" }); gsap.set(quote, { perspective: 400 }); if (animation[1] == "style1") { gsap.set(quote.split.chars, { opacity: 0, y: "90%", rotateX: "-40deg" }); } if (animation[1] == "style2") { gsap.set(quote.split.chars, { opacity: 0, x: "50" }); } if (animation[1] == "style3") { gsap.set(quote.split.chars, { opacity: 0, }); } quote.animation = gsap.to(quote.split.chars, { scrollTrigger: { trigger: quote, start: "top 90%", }, x: "0", y: "0", rotateX: "0", opacity: 1, duration: 1, ease: Back.easeOut, stagger: .02 }); }); } ScrollTrigger.addEventListener("refresh", title_animation); // Animation Fade Left End /////////////////////////////////////// // CURSOR var cursor = $(".cursor"), follower = $(".cursor-follower"); var posX = 0, posY = 0; var mouseX = 0, mouseY = 0; TweenMax.to({}, 0.016, { repeat: -1, onRepeat: function () { posX += (mouseX - posX) / 9; posY += (mouseY - posY) / 9; TweenMax.set(follower, { css: { left: posX - 12, top: posY - 12 } }); TweenMax.set(cursor, { css: { left: mouseX, top: mouseY } }); } }); $(document).on("mousemove", function (e) { mouseX = e.clientX; mouseY = e.clientY; }); //circle $(".theme-btn, a").on("mouseenter", function () { cursor.addClass("active"); follower.addClass("active"); }); $(".theme-btn, a").on("mouseleave", function () { cursor.removeClass("active"); follower.removeClass("active"); }); /*-------------------------------------------------------------- Accordion Active Style1 --------------------------------------------------------------*/ function accordionActive() { if ($('.accordion-box-style1').length) { $(".accordion-box-style1").on('click', '.acc-accord-btn', function () { if ($(this).hasClass('active') !== true) { $('.acc-accordion .acc-accord-btn').removeClass('active'); } if ($(this).next('.acc-accord-content').is(':visible')) { $(this).removeClass('active'); $(this).next('.acc-accord-content').slideUp(500); } else { $(this).addClass('active'); $('.acc-accordion .acc-accord-content').slideUp(500); $(this).next('.acc-accord-content').slideDown(500); } }); } } /*-------------------------------------------------------------- Accordion Active Style2 --------------------------------------------------------------*/ function accordionActive2() { if ($('.accordion-box-style2').length) { $(".accordion-box-style2").on('click', '.accord-btn', function () { if ($(this).hasClass('active') !== true) { $('.accordion .accord-btn').removeClass('active'); } if ($(this).next('.accord-content').is(':visible')) { $(this).removeClass('active'); $(this).next('.accord-content').slideUp(500); } else { $(this).addClass('active'); $('.accordion .accord-content').slideUp(500); $(this).next('.accord-content').slideDown(500); } }); } } // window load event $(window).on("load", function () { timepicker(); fullHeight(); handlePreloader(); thmSwiperInit(); accordionActive(); accordionActive2(); projectMasonaryLayout(); enableMasonry(); onHoverthreeDmovement(); activeBackground(); title_animation(); //Jquery Curved Circle if ($('.banner-style1__curved-circle-top').length) { $('.banner-style1__curved-circle-top').circleType({ position: 'absolute', dir: 1, radius: 83, fitText: false, forceHeight: true, forceWidth: true }); } //Jquery Curved Circle if ($('.banner-style1__curved-circle-bottom').length) { $('.banner-style1__curved-circle-bottom').circleType({ position: 'absolute', dir: -1, radius: 80, forceHeight: true, forceWidth: true }); } //Jquery Curved Circle if ($('.about-round-text1').length) { $('.about-round-text1').circleType({ position: 'absolute', dir: 1, radius: 110, fitText: true, forceHeight: true, forceWidth: true }); } //Jquery Curved Circle if ($('.about-round-text2').length) { $('.about-round-text2').circleType({ position: 'absolute', dir: -1, radius: 110, fitText: true, forceHeight: true, forceWidth: true }); } // Vegas Slider if ($(".banner-bg-slide").length) { $(".banner-bg-slide").each(function () { var Self = $(this); var bgSlideOptions = Self.data("options"); var bannerTwoSlides = Self.vegas(bgSlideOptions); }); } }); // window scroll event $(window).on("scroll", function () { handleScrollbar(); SmoothMenuScroll(); OnePageMenuScroll(); //Stricked Menu Fixed if ($(".stricked-menu").length) { var headerScrollPos = 130; var stricky = $(".stricked-menu"); if ($(window).scrollTop() > headerScrollPos) { stricky.addClass("stricky-fixed"); } else if ($(this).scrollTop() <= headerScrollPos) { stricky.removeClass("stricky-fixed"); } } //Scroll To Top if ($(window).scrollTop() > 200) { $('.scroll-top-inner').addClass('visible'); } else { $('.scroll-top-inner').removeClass('visible'); } }); // Scroll top button $('.scroll-top-inner').on("click", function () { $('html, body').animate({ scrollTop: 0 }, 500); return false; }); // DynamicBackground Image Activation $(function () { $(window).trigger('resize'); dynamicBackground(); }); // Nice Select Activation $(document).ready(function () { $('select:not(.ignore)').niceSelect(); }); })(jQuery);