Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Template Name: Personal - v4.3.0
- * Template URL: https://bootstrapmade.com/personal-free-resume-bootstrap-template/
- * Author: BootstrapMade.com
- * License: https://bootstrapmade.com/license/
- */
- (function() {
- "use strict";
- /**
- * Easy selector helper function
- */
- const select = (el, all = false) => {
- el = el.trim()
- if (all) {
- return [...document.querySelectorAll(el)]
- } else {
- return document.querySelector(el)
- }
- }
- /**
- * Easy event listener function
- */
- const on = (type, el, listener, all = false) => {
- let selectEl = select(el, all)
- if (selectEl) {
- if (all) {
- selectEl.forEach(e => e.addEventListener(type, listener))
- } else {
- selectEl.addEventListener(type, listener)
- }
- }
- }
- /**
- * Scrolls to an element with header offset
- */
- const scrollto = (el) => {
- window.scrollTo({
- top: 0,
- behavior: 'smooth'
- })
- }
- /**
- * Mobile nav toggle
- */
- on('click', '.mobile-nav-toggle', function(e) {
- select('#navbar').classList.toggle('navbar-mobile')
- this.classList.toggle('bi-list')
- this.classList.toggle('bi-x')
- })
- /**
- * Scrool with ofset on links with a class name .scrollto
- */
- on('click', '#navbar .nav-link', function(e) {
- let section = select(this.hash)
- if (section) {
- e.preventDefault()
- let navbar = select('#navbar')
- let header = select('#header')
- let sections = select('section', true)
- let navlinks = select('#navbar .nav-link', true)
- navlinks.forEach((item) => {
- item.classList.remove('active')
- })
- this.classList.add('active')
- if (navbar.classList.contains('navbar-mobile')) {
- navbar.classList.remove('navbar-mobile')
- let navbarToggle = select('.mobile-nav-toggle')
- navbarToggle.classList.toggle('bi-list')
- navbarToggle.classList.toggle('bi-x')
- }
- if (this.hash == '#header') {
- header.classList.remove('header-top')
- sections.forEach((item) => {
- item.classList.remove('section-show')
- })
- return;
- }
- if (!header.classList.contains('header-top')) {
- header.classList.add('header-top')
- setTimeout(function() {
- sections.forEach((item) => {
- item.classList.remove('section-show')
- })
- section.classList.add('section-show')
- }, 350);
- } else {
- sections.forEach((item) => {
- item.classList.remove('section-show')
- })
- section.classList.add('section-show')
- }
- scrollto(this.hash)
- }
- }, true)
- /**
- * Activate/show sections on load with hash links
- */
- window.addEventListener('load', () => {
- if (window.location.hash) {
- let initial_nav = select(window.location.hash)
- if (initial_nav) {
- let header = select('#header')
- let navlinks = select('#navbar .nav-link', true)
- header.classList.add('header-top')
- navlinks.forEach((item) => {
- if (item.getAttribute('href') == window.location.hash) {
- item.classList.add('active')
- } else {
- item.classList.remove('active')
- }
- })
- setTimeout(function() {
- initial_nav.classList.add('section-show')
- }, 350);
- scrollto(window.location.hash)
- }
- }
- });
- /**
- * Skills animation
- */
- let skilsContent = select('.skills-content');
- if (skilsContent) {
- new Waypoint({
- element: skilsContent,
- offset: '80%',
- handler: function(direction) {
- let progress = select('.progress .progress-bar', true);
- progress.forEach((el) => {
- el.style.width = el.getAttribute('aria-valuenow') + '%'
- });
- }
- })
- }
- /**
- * Testimonials slider
- */
- new Swiper('.testimonials-slider', {
- speed: 600,
- loop: true,
- autoplay: {
- delay: 5000,
- disableOnInteraction: false
- },
- slidesPerView: 'auto',
- pagination: {
- el: '.swiper-pagination',
- type: 'bullets',
- clickable: true
- },
- breakpoints: {
- 320: {
- slidesPerView: 1,
- spaceBetween: 20
- },
- 1200: {
- slidesPerView: 3,
- spaceBetween: 20
- }
- }
- });
- /**
- * Porfolio isotope and filter
- */
- window.addEventListener('load', () => {
- let portfolioContainer = select('.portfolio-container');
- if (portfolioContainer) {
- let portfolioIsotope = new Isotope(portfolioContainer, {
- itemSelector: '.portfolio-item',
- layoutMode: 'fitRows'
- });
- let portfolioFilters = select('#portfolio-flters li', true);
- on('click', '#portfolio-flters li', function(e) {
- e.preventDefault();
- portfolioFilters.forEach(function(el) {
- el.classList.remove('filter-active');
- });
- this.classList.add('filter-active');
- portfolioIsotope.arrange({
- filter: this.getAttribute('data-filter')
- });
- }, true);
- }
- });
- /**
- * Initiate portfolio lightbox
- */
- const portfolioLightbox = GLightbox({
- selector: '.portfolio-lightbox'
- });
- /**
- * Initiate portfolio details lightbox
- */
- const portfolioDetailsLightbox = GLightbox({
- selector: '.portfolio-details-lightbox',
- width: '90%',
- height: '90vh'
- });
- /**
- * Portfolio details slider
- */
- new Swiper('.portfolio-details-slider', {
- speed: 400,
- loop: true,
- autoplay: {
- delay: 5000,
- disableOnInteraction: false
- },
- pagination: {
- el: '.swiper-pagination',
- type: 'bullets',
- clickable: true
- }
- });
- })()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement