(function ($) {
"use strict";
$(window).on('load', function () {
preloader();
aosAnimation();
});
/*------------------------------------------
= preloader
-------------------------------------------*/
function preloader() {
$('#xb-loadding').fadeOut('slow', function () { $(this).remove(); });
};
/*------------------------------------------
= back to top
-------------------------------------------*/
$(window).scroll(function () {
if ($(this).scrollTop() > 500) {
$('.xb-backtotop').addClass('active');
} else {
$('.xb-backtotop').removeClass('active');
}
});
$(function () {
$(".scroll").on('click', function () {
$("html,body").animate({ scrollTop: 0 }, "slow");
return false
});
});
/*------------------------------------------
= sticky header
-------------------------------------------*/
function stickyHeader() {
var scrollDirection = "";
var lastScrollPosition = 0;
// Clone and make header sticky if the element with class 'xb-header' exists
if ($('.xb-header').length) {
$('.xb-header').addClass('original').clone(true).insertAfter('.xb-header').addClass('xb-header-area-sticky xb-sticky-stt').removeClass('original');
}
// Handle scroll events
$(window).on("scroll", function () {
var currentScrollPosition = $(window).scrollTop();
// Determine scroll direction
scrollDirection = currentScrollPosition < lastScrollPosition ? "up" : "down";
lastScrollPosition = currentScrollPosition;
// Check if element with ID 'xb-header-area' has class 'is-sticky'
if ($("#xb-header-area").hasClass("is-sticky")) {
// Add or remove classes based on scroll position for sticky header and mobile header
if (lastScrollPosition > 100) {
$(".xb-header-area-sticky.xb-sticky-stb").addClass("xb-header-fixed");
} else {
$(".xb-header-area-sticky.xb-sticky-stb").removeClass("xb-header-fixed");
}
// Add or remove classes for sticky header based on scroll direction
if (scrollDirection === "up" && lastScrollPosition > 100) {
$(".xb-header-area-sticky.xb-sticky-stt").addClass("xb-header-fixed");
} else {
$(".xb-header-area-sticky.xb-sticky-stt").removeClass("xb-header-fixed");
}
}
});
}
stickyHeader();
/*------------------------------------------
= header search
-------------------------------------------*/
$(".header-search-btn").on("click", function (e) {
e.preventDefault();
$(".header-search-form-wrapper").addClass("open");
$('.header-search-form-wrapper input[type="search"]').focus();
$('.body-overlay').addClass('active');
});
$(".xb-search-close").on("click", function (e) {
e.preventDefault();
$(".header-search-form-wrapper").removeClass("open");
$("body").removeClass("active");
$('.body-overlay').removeClass('active');
});
/*------------------------------------------
= sidebar
-------------------------------------------*/
$('.sidebar-menu-close, .body-overlay').on('click', function () {
$('.offcanvas-sidebar').removeClass('active');
$('.body-overlay').removeClass('active');
});
$('.offcanvas-sidebar-btn').on('click', function () {
$('.offcanvas-sidebar').addClass('active');
$('.body-overlay').addClass('active');
});
$('.body-overlay').on('click', function () {
$(this).removeClass('active');
$(".header-search-form-wrapper").removeClass("open");
});
/*------------------------------------------
= mobile menu
-------------------------------------------*/
$('.xb-nav-hidden li.menu-item-has-children > a').append('');
$('.xb-header-menu li.menu-item-has-children, .xb-menu-primary li.menu-item-has-children').append('');
$('.xb-menu-toggle').on('click', function () {
if (!$(this).hasClass('active')) {
$(this).closest('ul').find('.xb-menu-toggle.active').toggleClass('active');
$(this).closest('ul').find('.sub-menu.active').toggleClass('active').slideToggle();
}
$(this).toggleClass('active');
$(this).closest('.menu-item').find('> .sub-menu').toggleClass('active');
$(this).closest('.menu-item').find('> .sub-menu').slideToggle();
});
$('.xb-nav-hidden li.menu-item-has-children > a').click(function (e) {
var target = $(e.target);
if ($(this).attr('href') === '#' && !(target.is('.xb-menu-toggle'))) {
e.stopPropagation();
if (!$(this).find('.xb-menu-toggle').hasClass('active')) {
$(this).closest('ul').find('.xb-menu-toggle.active').toggleClass('active');
$(this).closest('ul').find('.sub-menu.active').toggleClass('active').slideToggle();
}
$(this).find('.xb-menu-toggle').toggleClass('active');
$(this).closest('.menu-item').find('> .sub-menu').toggleClass('active');
$(this).closest('.menu-item').find('> .sub-menu').slideToggle();
}
});
$(".xb-nav-mobile").on('click', function () {
$(this).toggleClass('active');
$('.xb-header-menu').toggleClass('active');
});
$(".xb-menu-close, .xb-header-menu-backdrop").on('click', function () {
$(this).removeClass('active');
$('.xb-header-menu').removeClass('active');
});
/*------------------------------------------
= data background and bg color
-------------------------------------------*/
$("[data-background]").each(function () {
$(this).css("background-image", "url(" + $(this).attr("data-background") + ") ")
})
$("[data-bg-color]").each(function () {
$(this).css("background-color", $(this).attr("data-bg-color"));
});
/*------------------------------------------
= aos animation
-------------------------------------------*/
function aosAnimation() {
AOS.init({
once: true,
});
}
/*------------------------------------------
= counter
-------------------------------------------*/
if ($(".xbo").length) {
$('.xbo').appear();
$(document.body).on('appear', '.xbo', function (e) {
var odo = $(".xbo");
odo.each(function () {
var countNumber = $(this).attr("data-count");
$(this).html(countNumber);
});
window.xboOptions = {
format: 'd',
};
});
}
/*------------------------------------------
= isotop
-------------------------------------------*/
$('.grid').imagesLoaded(function () {
var $grid = $('.grid').isotope({
itemSelector: '.grid-item',
percentPosition: true,
masonry: {
// use outer width of grid-sizer for columnWidth
columnWidth: '.grid-item',
}
});
// filter items on button click
$('.portfolio-menu').on('click', 'button', function () {
var filterValue = $(this).attr('data-filter');
$grid.isotope({ filter: filterValue });
});
});
//for menu active class
$('.portfolio-menu button').on('click', function (event) {
$(this).siblings('.active').removeClass('active');
$(this).addClass('active');
event.preventDefault();
});
/*------------------------------------------
= testimonial slider
-------------------------------------------*/
var insTestimonialSlider = new Swiper(".ins-testimonial-nav-slider", {
loop: true,
spaceBetween: 20,
speed: 500,
slidesPerView: 3,
centeredSlides: true,
autoplay: {
enabled: true,
delay: 6000
},
breakpoints: {
'1600': {
slidesPerView: 3,
},
'768': {
slidesPerView: 3,
},
'576': {
slidesPerView: 2,
centeredSlides: false,
},
'0': {
slidesPerView: 2,
centeredSlides: false,
},
},
});
var swiper2 = new Swiper(".ins-testimonial-slider-for", {
loop: true,
spaceBetween: 0,
effect: 'fade',
autoplay: {
enabled: true,
delay: 6000
},
slidesPerView: 1,
thumbs: {
swiper: insTestimonialSlider,
},
});
/*------------------------------------------
= brand slider
-------------------------------------------*/
var slider = new Swiper('.ins-brand-slider', {
slidesPerView: 6,
roundLengths: true,
loop: true,
loopAdditionalSlides: 30,
autoplay: {
enabled: true,
delay: 6000
},
speed: 400,
breakpoints: {
'1600': {
slidesPerView: 6,
},
'1200': {
slidesPerView: 6,
},
'992': {
slidesPerView: 5,
},
'768': {
slidesPerView: 4,
},
'576': {
slidesPerView: 3,
},
'0': {
slidesPerView: 2,
},
},
});
/*------------------------------------------
= law project slider
-------------------------------------------*/
var lwProjectSlider = new Swiper(".lw-project-slider", {
loop: true,
spaceBetween: 20,
speed: 500,
slidesPerView: 1,
effect: 'fade',
centeredSlides: true,
navigation: {
nextEl: '.xb-swiper-arrow-next',
prevEl: '.xb-swiper-arrow-prev',
},
autoplay: {
enabled: true,
delay: 6000
},
});
var swiper2 = new Swiper(".lw-project-slider-for", {
loop: true,
spaceBetween: 0,
speed: 700,
autoplay: {
enabled: true,
delay: 6000
},
slidesPerView: 1,
navigation: {
nextEl: '.xb-swiper-arrow-next',
prevEl: '.xb-swiper-arrow-prev',
},
thumbs: {
swiper: lwProjectSlider,
},
});
/*------------------------------------------
= law testimonial slider
-------------------------------------------*/
var slider = new Swiper('.lw-testimonial-slider', {
spaceBetween: 30,
slidesPerView: 3,
roundLengths: true,
loop: true,
loopAdditionalSlides: 30,
watchSlidesVisibility: true,
slideVisibleClass: 'swiper-slide-visible',
autoplay: {
enabled: true,
delay: 6000
},
speed: 400,
breakpoints: {
'1600': {
slidesPerView: 3,
},
'1200': {
slidesPerView: 3,
},
'992': {
slidesPerView: 3,
},
'768': {
slidesPerView: 2,
},
'576': {
slidesPerView: 2,
},
'0': {
slidesPerView: 1,
},
},
});
/*------------------------------------------
= team slider
-------------------------------------------*/
var slider = new Swiper('.xb-team-sldier', {
spaceBetween: 12,
slidesPerView: 3,
roundLengths: true,
loop: true,
loopAdditionalSlides: 30,
watchSlidesVisibility: true,
slideVisibleClass: 'swiper-slide-visible',
autoplay: {
enabled: true,
delay: 8000
},
pagination: {
el: ".swiper-pagination",
clickable: true,
dynamicBullets: true,
},
speed: 400,
breakpoints: {
'1600': {
slidesPerView: 3,
},
'1200': {
slidesPerView: 3,
},
'992': {
slidesPerView: 3,
},
'768': {
slidesPerView: 2,
},
'576': {
slidesPerView: 2,
},
'0': {
slidesPerView: 1,
},
},
});
/*------------------------------------------
= testimonial slider
-------------------------------------------*/
var slider = new Swiper('.xb-testimonial-sldier', {
spaceBetween: 12,
slidesPerView: 2,
roundLengths: true,
loop: true,
loopAdditionalSlides: 30,
watchSlidesVisibility: true,
slideVisibleClass: 'swiper-slide-visible',
autoplay: {
enabled: true,
delay: 6000
},
pagination: {
el: ".swiper-pagination",
clickable: true,
dynamicBullets: true,
},
speed: 400,
breakpoints: {
'1600': {
slidesPerView: 2,
},
'1200': {
slidesPerView: 2,
},
'992': {
slidesPerView: 2,
},
'768': {
slidesPerView: 2,
},
'576': {
slidesPerView: 2,
},
'0': {
slidesPerView: 1,
},
},
});
/*------------------------------------------
= testimonial slider
-------------------------------------------*/
var slider = new Swiper('.mr-testimonial-slider', {
spaceBetween: 100,
slidesPerView: 3,
roundLengths: true,
loop: true,
loopAdditionalSlides: 30,
centeredSlides: true,
autoplay: {
enabled: true,
delay: 6000
},
speed: 400,
breakpoints: {
'1600': {
slidesPerView: 3,
},
'1200': {
slidesPerView: 3,
},
'992': {
slidesPerView: 2,
},
'768': {
slidesPerView: 2,
},
'576': {
slidesPerView: 2,
},
'0': {
slidesPerView: 1,
},
},
});
/*------------------------------------------
= blog slider
-------------------------------------------*/
var slider = new Swiper('.lw-blog-slider', {
spaceBetween: 30,
slidesPerView: 2,
roundLengths: true,
loop: true,
loopAdditionalSlides: 30,
autoplay: {
enabled: true,
delay: 6000
},
speed: 400,
breakpoints: {
'1600': {
slidesPerView: 2,
},
'1200': {
slidesPerView: 2,
},
'992': {
slidesPerView: 2,
},
'768': {
slidesPerView: 2,
},
'576': {
slidesPerView: 1,
},
'0': {
slidesPerView: 1,
},
},
});
/*------------------------------------------
= service slider
-------------------------------------------*/
var slider = new Swiper('.bc-service-slider', {
spaceBetween: 10,
slidesPerView: 4,
roundLengths: true,
loop: true,
autoplay: {
enabled: true,
delay: 6000
},
navigation: {
nextEl: ".xb-swiper-arrow-next",
prevEl: ".xb-swiper-arrow-prev",
},
speed: 400,
breakpoints: {
'1600': {
slidesPerView: 4,
},
'1200': {
slidesPerView: 4,
},
'992': {
slidesPerView: 3,
},
'768': {
slidesPerView: 3,
},
'576': {
slidesPerView: 2,
},
'0': {
slidesPerView: 1,
},
},
});
/*------------------------------------------
= testimonial slider
-------------------------------------------*/
var slider = new Swiper('.ad-testimonial-slider', {
spaceBetween: 0,
slidesPerView: 1,
roundLengths: true,
loop: true,
centeredSlides: true,
effect: 'fade',
loopAdditionalSlides: 30,
autoplay: {
enabled: true,
delay: 6000
},
pagination: {
el: ".swiper-pagination",
clickable: true,
},
speed: 400,
});
/*------------------------------------------
= inhover active
-------------------------------------------*/
$(".xb-mouseenter").on('mouseenter', function () {
$(".xb-mouseenter").removeClass("active");
$(this).addClass("active");
});
$(".xb-mouseenter2").on('mouseenter', function () {
$(".xb-mouseenter2").removeClass("active");
$(this).addClass("active");
});
/*------------------------------------------
= nice slect
-------------------------------------------*/
$('.nice-select').niceSelect();
/*------------------------------------------
= magnificPopup
-------------------------------------------*/
$('.popup-image').magnificPopup({
type: 'image',
gallery: {
enabled: true
}
});
$('.popup-video').magnificPopup({
type: 'iframe',
mainClass: 'mfp-zoom-in',
});
/*------------------------------------------
= 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).next(".acc_body").is(":visible")) {
$(this).removeClass("active");
$(this).next(".acc_body").slideUp(300);
$(outerBox).children(".accordion").removeClass("active-block");
} else {
$(outerBox).find(".accordion .acc-btn").removeClass("active");
$(this).addClass("active");
$(outerBox).children(".accordion").removeClass("active-block");
$(outerBox).find(".accordion").children(".acc_body").slideUp(300);
target.addClass("active-block");
$(this).next(".acc_body").slideDown(300);
}
});
}
/*------------------------------------------
= banner paralax
-------------------------------------------*/
jQuery('.jarallax').jarallax({
speed: 0.5,
});
/*------------------------------------------
= scroll rotate
-------------------------------------------*/
let reloadClassName = document.getElementById("reload");
if (reloadClassName !== null) {
window.onscroll = function () {
scrollRotate();
};
function scrollRotate() {
reloadClassName.style.transform = "rotate(" + window.pageYOffset / 2 + "deg)";
}
}
/*------------------------------------------
= marquee
-------------------------------------------*/
$('.marquee-left').marquee({
speed: 50,
gap: 0,
delayBeforeStart: 0,
direction: 'left',
duplicated: true,
pauseOnHover: false,
startVisible: true,
});
$('.marquee-right').marquee({
speed: 50,
gap: 0,
delayBeforeStart: 0,
direction: 'right',
duplicated: true,
pauseOnHover: false,
startVisible: true,
});
/*------------------------------------------
= theiaStickySidebar
-------------------------------------------*/
if (typeof $.fn.theiaStickySidebar !== "undefined") {
$(".sticky-coloum-wrap .sticky-coloum-item").theiaStickySidebar({
additionalMarginTop: 130,
});
}
/*------------------------------------------
= parallax
-------------------------------------------*/
if ($('.scene,.scene_1,.scene_2,.scene_3,.scene_4,.scene_5').length > 0) {
$('.scene,.scene_1,.scene_2,.scene_3,.scene_4,.scene_5').parallax({
scalarX: 10.0,
scalarY: 10.0,
});
}
/*----------------------------
= SHOP PRICE SLIDER
------------------------------ */
if ($("#slider-range").length) {
$("#slider-range").slider({
range: true,
min: 12,
max: 200,
values: [0, 100],
slide: function (event, ui) {
$("#amount").val("$" + ui.values[0] + " - $" + ui.values[1]);
}
});
$("#amount").val("$" + $("#slider-range").slider("values", 0) + " - $" + $("#slider-range").slider("values", 1));
}
/*------------------------------------------
= TOUCHSPIN FOR PRODUCT SINGLE PAGE
-------------------------------------------*/
if ($("input.product-count").length) {
$("input.product-count").TouchSpin({
min: 1,
max: 1000,
step: 1,
buttondown_class: "btn btn-link",
buttonup_class: "btn btn-link",
});
}
/*------------------------------------------
= woocommerce
-------------------------------------------*/
if ($(".checkout-section").length) {
var showLogInBtn = $(".woocommerce-info > a");
var showCouponBtn = $(".showcoupon");
var shipDifferentAddressBtn = $("#ship-to-different-address");
var loginForm = $("form.login");
var couponForm = $(".checkout_coupon");
var shippingAddress = $(".shipping_address");
loginForm.hide();
couponForm.hide();
shippingAddress.hide();
showLogInBtn.on("click", function (event) {
event.preventDefault();
loginForm.slideToggle();
event.stopPropagation();
});
showCouponBtn.on("click", function (event2) {
event2.preventDefault();
couponForm.slideToggle();
event2.stopPropagation();
})
shipDifferentAddressBtn.on("click", function (event3) {
shippingAddress.slideToggle();
event3.stopPropagation();
})
}
})(jQuery);