Current File : /home/kelaby89/diamondtiptiling.com/wp-content/themes/floens/assets/js/floens-theme.js |
(function ($) {
"use strict";
if ($(".sticky-header").length) {
$(".sticky-header")
.clone()
.insertAfter(".sticky-header")
.addClass("sticky-header--cloned");
}
if ($(".main-menu__list").length) {
let menuElement = $(".main-menu__list");
let currentMenuItem = menuElement.find("li.current-menu-item");
let currentMenuParent = menuElement.find("li.current-menu-parent");
let currentMenuAncestor = menuElement.find("li.current-menu-ancestor");
let currentPageItem = menuElement.find("li.current_page_item");
currentMenuItem.addClass("current");
currentMenuParent.addClass("current");
currentMenuAncestor.addClass("current");
currentPageItem.addClass("current");
}
if ($(".service-details__category-list").length) {
let menuElement = $(".service-details__category-list");
let currentMenuItem = menuElement.find("li.current-menu-item");
let currentMenuParent = menuElement.find("li.current-menu-parent");
let currentMenuAncestor = menuElement.find("li.current-menu-ancestor");
let currentPageItem = menuElement.find("li.current_page_item");
currentMenuItem.addClass("active");
currentMenuParent.addClass("active");
currentMenuAncestor.addClass("active");
currentPageItem.addClass("active");
}
// Accrodion
if ($(".accrodion-grp").length) {
var accrodionGrp = $(".accrodion-grp");
accrodionGrp.each(function () {
var accrodionName = $(this).data("grp-name");
var Self = $(this);
var accordion = Self.find(".accrodion");
Self.addClass(accrodionName);
Self.find(".accrodion .accrodion-content").hide();
Self.find(".accrodion.active").find(".accrodion-content").show();
accordion.each(function () {
$(this)
.find(".accrodion-title")
.on("click", function () {
if ($(this).parent().hasClass("active") === false) {
$(".accrodion-grp." + accrodionName)
.find(".accrodion")
.removeClass("active");
$(".accrodion-grp." + accrodionName)
.find(".accrodion")
.find(".accrodion-content")
.slideUp();
$(this).parent().addClass("active");
$(this).parent().find(".accrodion-content").slideDown();
}
});
});
});
}
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
);
return false;
});
}
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
}
});
});
}
$(document).on("click", ".add", function () {
if ($(this).prev().val() < 999) {
$(this)
.prev()
.val(+$(this).prev().val() + 1);
}
$(this).prev().trigger("change");
});
$(document).on("click", ".sub", function () {
if ($(this).next().val() > 0) {
if ($(this).next().val() > 0)
$(this)
.next()
.val(+$(this).next().val() - 1);
}
$(this).next().trigger("change");
});
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;
}
if ($(".sticky-header__content").length) {
let navContent = document.querySelector(".main-menu").innerHTML;
let mobileNavContainer = document.querySelector(".sticky-header__content");
mobileNavContainer.innerHTML = navContent;
}
if ($(".mobile-nav__container .main-menu__list").length) {
let dropdownAnchor = $(
".mobile-nav__container .main-menu__list .menu-item-has-children > a"
);
dropdownAnchor.each(function () {
let self = $(this);
let toggleBtn = document.createElement("BUTTON");
toggleBtn.setAttribute("aria-label", "dropdown toggler");
toggleBtn.innerHTML = "<i class='fa fa-angle-down'></i>";
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();
});
});
}
if ($(".mobile-nav__toggler").length) {
$(".mobile-nav__toggler").on("click", function (e) {
e.preventDefault();
$(".mobile-nav__wrapper").toggleClass("expanded");
$("body").toggleClass("locked");
});
}
if ($(".search-toggler").length) {
$(".search-toggler").on("click", function (e) {
e.preventDefault();
$(".search-popup").toggleClass("active");
$(".mobile-nav__wrapper").removeClass("expanded");
$("body").toggleClass("locked");
});
}
if ($(".dynamic-year").length) {
let date = new Date();
$(".dynamic-year").html(date.getFullYear());
}
// window load event
$(window).on("load", function () {
if ($(".preloader").length) {
$(".preloader").fadeOut();
}
if ($(".product__items ul.products").length) {
$(".product__items ul.products").imagesLoaded(function () {
$(".product__items ul.products").isotope({
layoutMode: "masonry"
});
});
}
});
// window scroll event
function stickyMenuUpScroll($targetMenu, $toggleClass) {
var lastScrollTop = 0;
window.addEventListener(
"scroll",
function () {
var st = window.pageYOffset || document.documentElement.scrollTop;
if (st > 500) {
if (st > lastScrollTop) {
// downscroll code
$targetMenu.removeClass($toggleClass);
// console.log("down");
} else {
// upscroll code
$targetMenu.addClass($toggleClass);
// console.log("up");
}
} else {
$targetMenu.removeClass($toggleClass);
}
lastScrollTop = st;
},
false
);
}
stickyMenuUpScroll($(".sticky-header--normal"), "active");
/*-- Handle Scrollbar --*/
function handleScrollbar() {
const bodyHeight = $("body").height();
const scrollPos = $(window).innerHeight() + $(window).scrollTop();
let percentage = (scrollPos / bodyHeight) * 100;
if (percentage > 100) {
percentage = 100;
}
$(".scroll-to-top .scroll-to-top__inner").css("width", percentage + "%");
}
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");
}
}
// window scroll event
$(window).on("scroll", function () {
OnePageMenuScroll();
handleScrollbar();
if ($(".sticky-header--one-page").length) {
var headerScrollPos = 130;
var stricky = $(".sticky-header--one-page");
if ($(window).scrollTop() > headerScrollPos) {
stricky.addClass("active");
} else if ($(this).scrollTop() <= headerScrollPos) {
stricky.removeClass("active");
}
}
var scrollToTopBtn = ".scroll-to-top";
if (scrollToTopBtn.length) {
if ($(window).scrollTop() > 500) {
$(scrollToTopBtn).addClass("show");
} else {
$(scrollToTopBtn).removeClass("show");
}
}
});
$(document).on("click", ".shop-one__cart.floens_ajax ", function (e) {
$(".floens-overlay").fadeIn(300);
});
$(document.body).on(
"added_to_cart",
function (event, fragments, cart_hash, $button) {
$(".floens-overlay").fadeOut(300);
}
);
// custom coursor
if ($(".custom-cursor").length) {
var cursor = document.querySelector(".custom-cursor__cursor");
var cursorinner = document.querySelector(".custom-cursor__cursor-two");
var a = document.querySelectorAll("a");
document.addEventListener("mousemove", function (e) {
var x = e.clientX;
var y = e.clientY;
cursor.style.transform = `translate3d(calc(${e.clientX}px - 50%), calc(${e.clientY}px - 50%), 0)`;
});
document.addEventListener("mousemove", function (e) {
var x = e.clientX;
var y = e.clientY;
cursorinner.style.left = x + "px";
cursorinner.style.top = y + "px";
});
document.addEventListener("mousedown", function () {
cursor.classList.add("click");
cursorinner.classList.add("custom-cursor__innerhover");
});
document.addEventListener("mouseup", function () {
cursor.classList.remove("click");
cursorinner.classList.remove("custom-cursor__innerhover");
});
a.forEach((item) => {
item.addEventListener("mouseover", () => {
cursor.classList.add("custom-cursor__hover");
});
item.addEventListener("mouseleave", () => {
cursor.classList.remove("custom-cursor__hover");
});
});
}
//Show Popup menu
$(document).on("click", ".megamenu-clickable--toggler > a", function (e) {
$("body").toggleClass("megamenu-popup-active");
$(this).parent().find("ul").toggleClass("megamenu-clickable--active");
e.preventDefault();
});
$(document).on("click", ".megamenu-clickable--close", function (e) {
$("body").removeClass("megamenu-popup-active");
$(".megamenu-clickable--active").removeClass("megamenu-clickable--active");
e.preventDefault();
});
/*-- Back-to-top --*/
let scrollTop = $(".scroll-top path");
if (scrollTop.length) {
var e = document.querySelector(".scroll-top path"),
t = e.getTotalLength();
(e.style.transition = e.style.WebkitTransition = "none"),
(e.style.strokeDasharray = t + " " + t),
(e.style.strokeDashoffset = t),
e.getBoundingClientRect(),
(e.style.transition = e.style.WebkitTransition =
"stroke-dashoffset 10ms linear");
var o = function () {
var o = $(window).scrollTop(),
r = $(document).height() - $(window).height(),
i = t - (o * t) / r;
e.style.strokeDashoffset = i;
};
o(), $(window).scroll(o);
var back = $(".scroll-top"),
body = $("body, html");
$(window).on("scroll", function () {
if ($(window).scrollTop() > $(window).height()) {
back.addClass("scroll-top--active");
} else {
back.removeClass("scroll-top--active");
}
});
}
/*-- Dynamic year --*/
let dynamicyearElm = $(".dynamic-year");
if (dynamicyearElm.length) {
let currentYear = new Date().getFullYear();
dynamicyearElm.html(currentYear);
}
})(jQuery);