jQuery(document).ready(function ($) { var contentSections = $('.cd-section'), //navigationItems = $('#cd-vertical-nav ul li a'); navigationItems = $('#cd-vertical-nav ul li a .cd-dot'); //updateNavigation(); //$(window).on('scroll', function () { // updateNavigation(); //}); window.addEventListener("hashchange", function () { window.scrollTo(window.scrollX, window.scrollY - 100); }); // Cancel a tag href click navigationItems.parent().click(function (event) { event.preventDefault(); }); //smooth scroll to the section navigationItems.on('click', function (event) { event.preventDefault(); var hash = $(this).parent().attr("href"); smoothScroll($(hash), hash); }); //smooth scroll to second section $('.cd-scroll-down').on('click', function (event) { event.preventDefault(); var hash = $(this).parent().attr("href"); smoothScroll($(hash)); }); $('#cd-vertical-nav .cd-dot').hover(function () { //Hovering $(this).addClass("hovering"); $(this).siblings(".cd-label").addClass("hovering"); }, function () { //Not hovering $(this).removeClass("hovering"); $(this).siblings(".cd-label").removeClass("hovering"); }); //open-close navigation on touch devices //$('.touch .cd-nav-trigger').on('click', function(){ // $('.touch #cd-vertical-nav').toggleClass('open'); //}); $('.cd-nav-trigger').on('click', function () { $('#cd-vertical-nav').toggleClass('open'); }); //close navigation on touch devices when selectin an elemnt from the list //$('.touch #cd-vertical-nav a').on('click', function(){ // $('.touch #cd-vertical-nav').removeClass('open'); //}); $('#cd-vertical-nav a').on('click', function () { $('#cd-vertical-nav').removeClass('open'); }); function updateNavigation() { var windscroll = $(window).scrollTop(); var windowHeight = $(window).height(); var navbarHeight = $("nav.navbar-fixed-top").outerHeight(); var vpHeight = windowHeight - navbarHeight; var currentPos = windscroll - vpHeight; if (currentPos < 0) currentPos = 0; var $currentSection; $('#cd-vertical-nav a.is-selected').removeClass('is-selected'); console.log("currentPos: " + currentPos); contentSections.each(function () { $this = document.getElementById($(this).attr("id")); console.log("element " + $(this).attr("id") + ": " + $this.offsetTop); if (currentPos >= $this.offsetTop) { $currentSection = $(this) var id = $currentSection.attr('id'); $('#cd-vertical-nav a.is-selected').removeClass('is-selected'); $("#cd-vertical-nav a[href=#" + id + "]").addClass('is-selected'); } /*var activeSection = $('#cd-vertical-nav a[href="#' + $this.attr('id') + '"]').attr('data-number') - 1; if (($this.offset().top - $(window).height() / 2 < $(window).scrollTop()) && ($this.offset().top + $this.height() - $(window).height() / 2 > $(window).scrollTop())) { navigationItems.eq(activeSection).addClass('is-selected'); } else { navigationItems.eq(activeSection).removeClass('is-selected'); }*/ }); }; function smoothScroll(target, hash) { determineOffset(target, hash, function (offset) { $('body,html').animate( { 'scrollTop': target.offset().top - offset }, 600 ); }); } }); function determineOffset(target, hash, callback) { switch (hash) { // Home case "#getStarted": callback(25); break; case "#WhyCRM": callback(10); break; case "#GetMore": callback(15); break; case "#Solutions": callback(20); break; case "#Customers": callback(20); break; // About case "#WhoWeAre": callback(25); break; case "#Mission": callback(20); break; case "#Journey": callback(20); break; case "#Help": callback(10); break; case "#Team": callback(10) break; // Services case "#WhatWeDo": callback(10); break; case "#Packages": callback(10); break; // Products case "#Products": callback(-25); break; // Dyn 365 case "#Rethink": callback(20); break; case "#Applications": callback(20); break; case "#Interaction": callback(-30); break; case "#Dyn365Licensing": callback(-20); break; case "#Business": callback(20); break; case "#Addons": callback(10); break; // Resco case "#Features": callback(20); break; case "#Devices": callback(10); break; case "#LicensingResco": callback(-30); break; // Office 365 case "#Connect": callback(-10); break; case "#Business": callback(-10); break; case "#LicensingOffice": callback(-10); break; // Dyn Solutions case "#extendFunc": callback(-20); break; // Contact case "#GetInTouch": callback(-10); break; default: callback(90); break; } };