odonata / app /js /custom.js
Theivaprakasham Hari
first push
e05e237
raw
history blame
6.28 kB
(function($) {
"use strict";
$(".owl-carousel").owlCarousel({
loop: true,
margin: 30,
nav: true,
pagination: true,
responsive: {
0: {
items: 1
},
600: {
items: 2
},
1000: {
items: 3
}
}
});
$(window).scroll(function() {
var scroll = $(window).scrollTop();
var box = $(".header-text").height();
var header = $("header").height();
if (scroll >= box - header) {
$("header").addClass("background-header");
} else {
$("header").removeClass("background-header");
}
});
// Mobile menu dropdown
$(".submenu").on("click", function() {
var width = $(window).width();
if (width < 992) {
$(".submenu ul").toggleClass("active");
}
});
// Scroll animation init
window.sr = new scrollReveal();
// Menu Dropdown Toggle
if ($(".menu-trigger").length) {
$(".menu-trigger").on("click", function() {
$(this).toggleClass("active");
$(".header-area .nav").slideToggle(200);
});
}
// Menu elevator animation
$("a[href*=\\#]:not([href=\\#])").on("click", function() {
if (
location.pathname.replace(/^\//, "") ==
this.pathname.replace(/^\//, "") &&
location.hostname == this.hostname
) {
var target = $(this.hash);
target = target.length ? target : $("[name=" + this.hash.slice(1) + "]");
if (target.length) {
var width = $(window).width();
if (width < 991) {
$(".menu-trigger").removeClass("active");
$(".header-area .nav").slideUp(200);
}
$("html,body").animate(
{
scrollTop: target.offset().top - 80
},
700
);
return false;
}
}
});
$(document).ready(function() {
$(document).on("scroll", onScroll);
//smoothscroll
$('a[href^="#"]').on("click", function(e) {
e.preventDefault();
$(document).off("scroll");
$("a").each(function() {
$(this).removeClass("active");
});
$(this).addClass("active");
var target = this.hash,
menu = target;
var target = $(this.hash);
$("html, body")
.stop()
.animate(
{
scrollTop: target.offset().top - 79
},
500,
"swing",
function() {
window.location.hash = target;
$(document).on("scroll", onScroll);
}
);
});
});
function onScroll(event) {
var scrollPos = $(document).scrollTop();
$(".nav a").each(function() {
var currLink = $(this);
try {
var refElement = $(currLink.attr("href"));
if (
refElement.position().top <= scrollPos &&
refElement.position().top + refElement.height() > scrollPos
) {
$(".nav ul li a").removeClass("active");
currLink.addClass("active");
} else {
currLink.removeClass("active");
}
} catch (e) {
// Ignore href='javascript:;'
}
});
}
const Accordion = {
settings: {
// Expand the first item by default
first_expanded: false,
// Allow items to be toggled independently
toggle: false
},
openAccordion: function(toggle, content) {
if (content.children.length) {
toggle.classList.add("is-open");
let final_height = Math.floor(content.children[0].offsetHeight);
content.style.height = final_height + "px";
}
},
closeAccordion: function(toggle, content) {
toggle.classList.remove("is-open");
content.style.height = 0;
},
init: function(el) {
const _this = this;
// Override default settings with classes
let is_first_expanded = _this.settings.first_expanded;
if (el.classList.contains("is-first-expanded")) is_first_expanded = true;
let is_toggle = _this.settings.toggle;
if (el.classList.contains("is-toggle")) is_toggle = true;
// Loop through the accordion's sections and set up the click behavior
const sections = el.getElementsByClassName("accordion");
const all_toggles = el.getElementsByClassName("accordion-head");
const all_contents = el.getElementsByClassName("accordion-body");
for (let i = 0; i < sections.length; i++) {
const section = sections[i];
const toggle = all_toggles[i];
const content = all_contents[i];
// Click behavior
toggle.addEventListener("click", function(e) {
if (!is_toggle) {
// Hide all content areas first
for (let a = 0; a < all_contents.length; a++) {
_this.closeAccordion(all_toggles[a], all_contents[a]);
}
// Expand the clicked item
_this.openAccordion(toggle, content);
} else {
// Toggle the clicked item
if (toggle.classList.contains("is-open")) {
_this.closeAccordion(toggle, content);
} else {
_this.openAccordion(toggle, content);
}
}
});
// Expand the first item
if (i === 0 && is_first_expanded) {
_this.openAccordion(toggle, content);
}
}
}
};
(function() {
// Initiate all instances on the page
const accordions = document.getElementsByClassName("accordions");
for (let i = 0; i < accordions.length; i++) {
Accordion.init(accordions[i]);
}
})();
// Home seperator
if ($(".home-seperator").length) {
$(".home-seperator .left-item, .home-seperator .right-item").imgfix();
}
// Home number counterup
if ($(".count-item").length) {
$(".count-item strong").counterUp({
delay: 10,
time: 1000
});
}
// Page loading animation
$(window).on("load", function() {
if ($(".cover").length) {
$(".cover").parallax({
imageSrc: $(".cover").data("image"),
zIndex: "1"
});
}
$("#preloader").animate(
{
opacity: "0"
},
600,
function() {
setTimeout(function() {
$("#preloader")
.css("visibility", "hidden")
.fadeOut();
}, 300);
}
);
});
})(window.jQuery);