231 lines
5.8 KiB
JavaScript
231 lines
5.8 KiB
JavaScript
$(function() {
|
|
var $grid = $('.gridder').isotope({
|
|
itemSelector: '.grid-item',
|
|
percentPosition: true
|
|
});
|
|
|
|
// filter items on button click
|
|
$('.filterable-button').on( 'click', 'button', function() {
|
|
var filterValue = $(this).attr('data-filter');
|
|
$grid.isotope({ filter: filterValue });
|
|
});
|
|
|
|
$('.testi-carousel').owlCarousel({
|
|
margin: 0,
|
|
loop: true,
|
|
autoplay: true,
|
|
autoplayTimeout: 4000,
|
|
items: 1,
|
|
});
|
|
|
|
// Nice select
|
|
$('.vg-select').niceSelect();
|
|
|
|
// Tooltip
|
|
$('[data-toggle="tooltip"]').tooltip();
|
|
|
|
// Page animation initialize
|
|
new WOW().init();
|
|
|
|
// Back to top
|
|
var backTop = $(".btn-back_to_top");
|
|
|
|
$(window).scroll(function() {
|
|
if($(document).scrollTop() > 400) {
|
|
backTop.css('visibility', 'visible');
|
|
}
|
|
else if($(document).scrollTop() < 400) {
|
|
backTop.css('visibility', 'hidden');
|
|
}
|
|
});
|
|
|
|
backTop.click(function() {
|
|
$('html').animate({
|
|
scrollTop: 0
|
|
}, 1000);
|
|
return false;
|
|
});
|
|
|
|
$.fn.toggleSelected = function(options) {
|
|
var defaults = $.extend({
|
|
classes: 'selected',
|
|
itemSelector: this.children(),
|
|
});
|
|
|
|
return this.each(function() {
|
|
var o = defaults;
|
|
var sel = o.itemSelector;
|
|
|
|
sel.click(function() {
|
|
var self = $(this);
|
|
self.addClass(o.classes);
|
|
self.siblings().removeClass(o.classes);
|
|
});
|
|
});
|
|
};
|
|
|
|
$('[data-toggle="selected"]').toggleSelected();
|
|
});
|
|
|
|
$(document).ready(function () {
|
|
|
|
/* Sticky nvigation */
|
|
|
|
var sticky = {
|
|
$sticky: $('.sticky'),
|
|
offsets: [],
|
|
targets: [],
|
|
stickyTop: null,
|
|
|
|
set: function () {
|
|
var self = this;
|
|
|
|
var windowTop = Math.floor($(window).scrollTop());
|
|
|
|
self.offsets = [];
|
|
self.targets = [];
|
|
|
|
// Get current top position of sticky element
|
|
self.stickyTop = self.$sticky.data('offset') ? self.$sticky.css('position', 'absolute').data('offset') : self.$sticky.css('position', 'absolute').offset().top;
|
|
|
|
// Cache all targets and their top positions
|
|
self.$sticky.find('a').map(function () {
|
|
var $el = $(this),
|
|
href = $el.data('target') || $el.attr('href'),
|
|
$href = /^#./.test(href) && $(href);
|
|
|
|
return $href && $href.length && $href.is(':visible') ? [[$href[0].getBoundingClientRect().top + windowTop, href]] : null;
|
|
})
|
|
.sort(function (a, b) { return a[0] - b[0] })
|
|
.each(function () {
|
|
self.offsets.push(this[0]);
|
|
self.targets.push(this[1]);
|
|
});
|
|
},
|
|
|
|
update: function () {
|
|
var self = this;
|
|
|
|
var windowTop = Math.floor($(window).scrollTop());
|
|
var $stickyLinks = self.$sticky.find('.navbar-nav .nav-item').removeClass('active');
|
|
var stickyPosition = 'fixed';
|
|
var currentIndex = 0;
|
|
|
|
// Toggle fixed position depending on visibility
|
|
if ($(window).width() < 800 || $(window).height() < 500 || self.stickyTop > windowTop) {
|
|
stickyPosition = 'absolute';
|
|
self.$sticky.removeClass('floating');
|
|
|
|
} else {
|
|
|
|
for (var i = self.offsets.length; i--;) {
|
|
if (windowTop >= self.offsets[i] - 2 && (self.offsets[i + 1] === undefined || windowTop <= self.offsets[i + 1] + 2)) {
|
|
currentIndex = i;
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
self.$sticky.css({ 'position': stickyPosition});
|
|
|
|
if(stickyPosition == 'absolute') {
|
|
self.$sticky.removeClass('floating');
|
|
}
|
|
else {
|
|
self.$sticky.addClass('floating');
|
|
}
|
|
|
|
$stickyLinks.eq(currentIndex).addClass('active');
|
|
},
|
|
|
|
init: function () {
|
|
var self = this;
|
|
|
|
$(window).on('resize', function () {
|
|
self.set();
|
|
|
|
self.update();
|
|
});
|
|
|
|
$(window).on('scroll', function () {
|
|
self.update();
|
|
});
|
|
|
|
$(window).trigger('resize');
|
|
}
|
|
}
|
|
|
|
if($('.navbar').hasClass('sticky')) {
|
|
sticky.init();
|
|
}
|
|
|
|
});
|
|
|
|
$(document).ready(function() {
|
|
$('#sideel').click(function() {
|
|
$(this).parents('.config').toggleClass('active');
|
|
});
|
|
|
|
$('body').data('bodyClassList', '');
|
|
|
|
$('.color-item').click(function() {
|
|
var cls = $(this).data('class');
|
|
|
|
$('body').attr('class', $('body').data('bodyClassList'));
|
|
$('body').addClass(cls);
|
|
});
|
|
|
|
$('#change-page').on('change', function() {
|
|
var url = $(this).val() + '.html';
|
|
|
|
if($(this).val()) {
|
|
window.location.assign(url);
|
|
}
|
|
});
|
|
|
|
$('[data-animate="scrolling"]').each(function() {
|
|
var self = $(this);
|
|
var target = $(this).data('target') ? $(this).data('target') : $(this).attr('href');
|
|
|
|
self.click(function(e) {
|
|
$('body, html').animate({ scrollTop: $(target).offset().top }, 1000);
|
|
return false;
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
/*
|
|
* Counter
|
|
*
|
|
* Require(" jquery.animateNumber.min.js ", " jquery.waypoints.min.js ")
|
|
*/
|
|
$(document).ready(function() {
|
|
var counterInit = function() {
|
|
if ( $('.section-counter').length > 0 ) {
|
|
$('.section-counter').waypoint( function( direction ) {
|
|
|
|
if( direction === 'down' && !$(this.element).hasClass('ftco-animated') ) {
|
|
|
|
var comma_separator_number_step = $.animateNumber.numberStepFactories.separator(',')
|
|
$('.number').each(function(){
|
|
var $this = $(this),
|
|
num = $this.data('number');
|
|
$this.animateNumber(
|
|
{
|
|
number: num,
|
|
numberStep: comma_separator_number_step
|
|
}, 5000
|
|
);
|
|
});
|
|
|
|
}
|
|
|
|
} , { offset: '95%' } );
|
|
}
|
|
|
|
}
|
|
counterInit();
|
|
}); |