/** * This script adds the javascript effects to the Educators Techonology. * * @package Educators Techonology * @author AnchoredDesign * @license GPL-2.0-or-later */ var sectioneles = document.querySelectorAll('.is-style-sectionheading'); var sectioneleslength = sectioneles.length; for (i = 0; i < sectioneleslength; i++) { sectioneles[i].innerHTML = '' + sectioneles[i].innerHTML + ''; } var sectioneles = document.querySelectorAll('.widget-title'); var sectioneleslength = sectioneles.length; for (i = 0; i < sectioneleslength; i++) { sectioneles[i].innerHTML = '' + sectioneles[i].innerHTML + ''; } var entries = document.querySelectorAll('.blog .entry,.archive .entry,.search .entry'); var entrieslength = entries.length; var entriesheight = 0; for (i = 0; i < entrieslength; i++) { if (entries[i].clientHeight > entriesheight) { entriesheight = entries[i].clientHeight; } } entries.forEach(function(entry) { entry.style.height = entriesheight + 'px'; }); var faventries = document.querySelectorAll('.favorite-wrap li'); var faventrieslength = faventries.length; var faventriesheight = 0; for (j = 0; j < faventrieslength; j++) { if (faventries[j].clientHeight > faventriesheight) { faventriesheight = faventries[j].clientHeight; } } faventries.forEach(function(faventry) { faventry.style.height = faventriesheight + 'px'; }); var speed = 500; var moving_frequency = 15; // Affects performance ! var links = document.getElementsByTagName('a'); var href; for (var i = 0; i < links.length; i++) { href = (links[i].attributes.href === undefined) ? null : links[i].attributes.href.nodeValue.toString(); if (href !== null && href.length > 1 && href.substr(0, 1) == '#' && href.substr(1, 3) !== 'tab') { links[i].onclick = function() { var element; var href = this.attributes.href.nodeValue.toString(); if (element = document.getElementById(href.substr(1))) { smoothScrollingTo('#' + href.substr(1)) } return false; }; } } var getScrollTopElement = function(e) { var top = 0; while (e.offsetParent != undefined && e.offsetParent != null) { top += e.offsetTop + (e.clientTop != null ? e.clientTop : 0); e = e.offsetParent; } return top; }; var getScrollTopDocument = function() { return document.documentElement.scrollTop + document.body.scrollTop; }; function smoothScrollingTo(target) { var targetele = document.querySelector(target); var hop_count = speed / moving_frequency var getScrollTopDocumentAtBegin = getScrollTopDocument(); var stickyheader = document.getElementsByClassName('sticky-header'); var gap = (getScrollTopElement(targetele) - getScrollTopDocumentAtBegin) / hop_count; if (stickyheader.length) { gap = (getScrollTopElement(targetele) - getScrollTopDocumentAtBegin - 100) / hop_count; } for (var i = 1; i <= hop_count; i++) { (function() { var hop_top_position = gap * i; setTimeout(function() { window.scrollTo(0, hop_top_position + getScrollTopDocumentAtBegin); }, moving_frequency * i); })(); } } if (location.hash) { smoothScrollingTo(location.hash); } var menutoggles = document.querySelectorAll('.menu-toggle:not(.mobile-menu-toggle),.sub-menu-toggle'); menutoggles.forEach(function(menutoggle) { menutoggle.addEventListener('click', function(event) { menutoggle.nextElementSibling.classList.toggle("active"); }); }); var mobilemenutoggles = document.querySelectorAll('.mobile-menu-toggle,.searchicon,.close-toggle'); mobilemenutoggles.forEach(function(mobilemenutoggle) { mobilemenutoggle.addEventListener('click', function(event) { document.querySelector('.mobile-sidebar-content').classList.toggle('active'); }); }); document.addEventListener( 'scroll', function(e) { lastKnownScrollPosition = window.scrollY; if (lastKnownScrollPosition > 150) { document.querySelector('body').classList.add('sticky'); stickyheaderAdd(); } else { document.querySelector('body').classList.remove('sticky'); stickyheaderRemove(); } if (window.innerWidth < 960) { document.querySelector('.sticky-header').innerHTML = document.querySelector('.mobile-header').innerHTML; var mobilemenutoggles = document.querySelectorAll('.mobile-menu-toggle,.searchicon'); mobilemenutoggles.forEach(function(mobilemenutoggle) { mobilemenutoggle.addEventListener('click', function(event) { document.querySelector('.mobile-sidebar-content').classList.toggle('active'); }); }); } } ); var toctoggles = document.querySelectorAll('.toc-toggle'); toctoggles.forEach(function(toctoggle) { toctoggle.addEventListener('click', function(event) { event.target.innerHTML = "View more"; toctoggle.parentNode.classList.toggle("expanded"); if (toctoggle.parentNode.classList.contains('expanded')) { event.target.innerHTML = "View less"; } }); }); function stickyheaderAdd() { var adminbar = document.getElementsByClassName('admin-bar')[0]; var topbar = document.getElementsByClassName('top-bar')[0]; var stickyHeader = document.getElementsByClassName('sticky-header')[0]; var bodystart = document.querySelector('body.sticky'); var topoffset = 0; if (adminbar) { topoffset += 32; topbar.style.top = 32 + 'px'; } if (window.innerWidth > 960) { if (topbar) { topoffset += (topbar.offsetHeight - 5); bodystart.style.marginTop = topbar.offsetHeight + 'px'; } } stickyHeader.style.top = topoffset + 'px'; } function stickyheaderRemove() { var adminbar = document.getElementsByClassName('admin-bar')[0]; var topbar = document.getElementsByClassName('top-bar')[0]; var stickyHeader = document.getElementsByClassName('sticky-header')[0]; var bodystart = document.querySelector('body'); bodystart.style.marginTop = 0 + 'px'; stickyHeader.style.top = 0 + 'px'; }