personalpage/assets/js/topbar-virtual.js
2023-03-23 08:09:09 +00:00

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();
});