/* ===================================================================
Author : Valid Theme
Template Name : Cleanu - Cleaning Services Template
Version : 1.0
* ================================================================= */
(function($) {
"use strict";
$(document).ready(function() {
/* ==================================================
# Wow Init
===============================================*/
var wow = new WOW({
boxClass: 'wow', // animated element css class (default is wow)
animateClass: 'animated', // animation css class (default is animated)
offset: 0, // distance to the element when triggering the animation (default is 0)
mobile: true, // trigger animations on mobile devices (default is true)
live: true // act on asynchronously loaded content (default is true)
});
wow.init();
/* ==================================================
# Tooltip Init
===============================================*/
$('[data-toggle="tooltip"]').tooltip();
/* ==================================================
# Smooth Scroll
===============================================*/
$("body").scrollspy({
target: ".navbar-collapse",
offset: 200
});
$('a.smooth-menu').on('click', function(event) {
var $anchor = $(this);
var headerH = '70';
$('html, body').stop().animate({
scrollTop: $($anchor.attr('href')).offset().top - headerH + "px"
}, 1500, 'easeInOutExpo');
event.preventDefault();
});
/* ==================================================
# Banner Animation
===============================================*/
function doAnimations(elems) {
//Cache the animationend event in a variable
var animEndEv = 'webkitAnimationEnd animationend';
elems.each(function() {
var $this = $(this),
$animationType = $this.data('animation');
$this.addClass($animationType).one(animEndEv, function() {
$this.removeClass($animationType);
});
});
}
//Variables on page load
var $immortalCarousel = $('.animate_text'),
$firstAnimatingElems = $immortalCarousel.find('.item:first').find("[data-animation ^= 'animated']");
//Initialize carousel
$immortalCarousel.carousel();
//Animate captions in first slide on page load
doAnimations($firstAnimatingElems);
//Other slides to be animated on carousel slide event
$immortalCarousel.on('slide.bs.carousel', function(e) {
var $animatingElems = $(e.relatedTarget).find("[data-animation ^= 'animated']");
doAnimations($animatingElems);
});
/* ==================================================
# Youtube Video Init
===============================================*/
$('.player').mb_YTPlayer();
/* ==================================================
# imagesLoaded active
===============================================*/
$('#portfolio-grid,.blog-masonry').imagesLoaded(function() {
/* Filter menu */
$('.mix-item-menu').on('click', 'button', function() {
var filterValue = $(this).attr('data-filter');
$grid.isotope({
filter: filterValue
});
});
/* filter menu active class */
$('.mix-item-menu button').on('click', function(event) {
$(this).siblings('.active').removeClass('active');
$(this).addClass('active');
event.preventDefault();
});
/* Filter active */
var $grid = $('#portfolio-grid').isotope({
itemSelector: '.pf-item',
percentPosition: true,
masonry: {
columnWidth: '.pf-item',
}
});
/* Filter active */
$('.blog-masonry').isotope({
itemSelector: '.blog-item',
percentPosition: true,
masonry: {
columnWidth: '.blog-item',
}
});
});
/* ==================================================
# Fun Factor Init
===============================================*/
$('.timer').countTo();
$('.fun-fact').appear(function() {
$('.timer').countTo();
}, {
accY: -100
});
/* ==================================================
Nice Select Init
===============================================*/
$('select').niceSelect();
/* ==================================================
# Hover Active Init
===============================================*/
$('.style-three-item').on('mouseenter', function () {
$(this).addClass('active').parent().siblings().find('.style-three-item').removeClass('active');
})
/* ==================================================
# Twenty Twenty Plugin Init
===============================================*/
$(".twentytwenty-container").twentytwenty({default_offset_pct: 0.7});
/* ==================================================
# Magnific popup init
===============================================*/
$(".popup-link").magnificPopup({
type: 'image',
// other options
});
$(".popup-gallery").magnificPopup({
type: 'image',
gallery: {
enabled: true
},
// other options
});
$(".popup-youtube, .popup-vimeo, .popup-gmaps").magnificPopup({
type: "iframe",
mainClass: "mfp-fade",
removalDelay: 160,
preloader: false,
fixedContentPos: false
});
$('.magnific-mix-gallery').each(function() {
var $container = $(this);
var $imageLinks = $container.find('.item');
var items = [];
$imageLinks.each(function() {
var $item = $(this);
var type = 'image';
if ($item.hasClass('magnific-iframe')) {
type = 'iframe';
}
var magItem = {
src: $item.attr('href'),
type: type
};
magItem.title = $item.data('title');
items.push(magItem);
});
$imageLinks.magnificPopup({
mainClass: 'mfp-fade',
items: items,
gallery: {
enabled: true,
tPrev: $(this).data('prev-text'),
tNext: $(this).data('next-text')
},
type: 'image',
callbacks: {
beforeOpen: function() {
var index = $imageLinks.index(this.st.el);
if (-1 !== index) {
this.goTo(index);
}
}
}
});
});
/* ==================================================
# Services Type Carousel
===============================================*/
$('.services-type-carousel').owlCarousel({
loop: false,
nav: false,
margin: 30,
dots: true,
autoplay: true,
items: 1,
navText: [
"",
""
]
});
/* ==================================================
# Feature Service Carousel
===============================================*/
$('.feature-service-carousel').owlCarousel({
loop: true,
nav: false,
margin: 30,
dots: true,
autoplay: true,
items: 1,
navText: [
"",
""
]
});
/* ==================================================
# Project Carousel
===============================================*/
$('.project-carousel').owlCarousel({
loop: false,
margin: 30,
nav: true,
navText: [
"",
""
],
dots: false,
autoplay: true,
responsive: {
0: {
items: 1
},
768: {
items: 2
},
1200: {
items: 2,
loop: true,
center: true
}
}
});
/* ==================================================
# Services Carousel
===============================================*/
$('.services-4-col-carousel').owlCarousel({
loop: true,
margin: 0,
nav: true,
navText: [
"",
""
],
dots: false,
autoplay: true,
responsive: {
0: {
items: 1
},
800: {
items: 2,
margin: 30,
},
1000: {
items: 3,
stagePadding: 0,
},
1367: {
items: 3,
stagePadding: 100,
center: true,
},
}
});
/* ==================================================
# Testimonials Carousel
===============================================*/
$('.testimonial-carousel').owlCarousel({
loop: false,
nav: false,
margin: 30,
dots: true,
autoplay: true,
items: 1,
navText: [
"",
""
]
});
/* ==================================================
# Services Carousel
===============================================*/
$('.services-style-four-carousel').owlCarousel({
loop: true,
margin: 30,
nav: false,
navText: [
"",
""
],
dots: false,
autoplay: true,
responsive: {
0: {
items: 1
},
768: {
items: 2
},
992: {
items: 3,
}
}
});
/* ==================================================
Contact Form Validations
================================================== */
$('.contact-form').each(function() {
var formInstance = $(this);
formInstance.submit(function() {
var action = $(this).attr('action');
$("#message").slideUp(750, function() {
$('#message').hide();
$('#submit')
.after('
')
.attr('disabled', 'disabled');
$.post(action, {
name: $('#name').val(),
email: $('#email').val(),
phone: $('#phone').val(),
comments: $('#comments').val()
},
function(data) {
document.getElementById('message').innerHTML = data;
$('#message').slideDown('slow');
$('.contact-form img.loader').fadeOut('slow', function() {
$(this).remove()
});
$('#submit').removeAttr('disabled');
}
);
});
return false;
});
});
}); // end document ready function
/* ==================================================
Preloader Init
===============================================*/
$(window).on('load', function() {
// Animate loader off screen
$(".se-pre-con").fadeOut("slow");;
});
})(jQuery); // End jQuery