added api page
added login added api.ejs added middleware for authorization check
This commit is contained in:
88
consumerWebsite/public/js/api.js
Normal file
88
consumerWebsite/public/js/api.js
Normal file
@ -0,0 +1,88 @@
|
||||
|
||||
var elements = [];
|
||||
|
||||
[].forEach.call(document.querySelectorAll('.scroll-to-link'), function (div) {
|
||||
div.onclick = function (e) {
|
||||
e.preventDefault();
|
||||
var target = this.dataset.target;
|
||||
document.getElementById(target).scrollIntoView({ behavior: 'smooth' });
|
||||
var elems = document.querySelectorAll(".content-menu ul li");
|
||||
[].forEach.call(elems, function (el) {
|
||||
el.classList.remove("active");
|
||||
});
|
||||
this.classList.add("active");
|
||||
return false;
|
||||
};
|
||||
});
|
||||
|
||||
document.getElementById('button-menu-mobile').onclick = function (e) {
|
||||
e.preventDefault();
|
||||
document.querySelector('html').classList.toggle('menu-opened');
|
||||
}
|
||||
document.querySelector('.left-menu .mobile-menu-closer').onclick = function (e) {
|
||||
e.preventDefault();
|
||||
document.querySelector('html').classList.remove('menu-opened');
|
||||
}
|
||||
|
||||
function debounce (func) {
|
||||
var timer;
|
||||
return function (event) {
|
||||
if (timer) clearTimeout(timer);
|
||||
timer = setTimeout(func, 100, event);
|
||||
};
|
||||
}
|
||||
|
||||
function calculElements () {
|
||||
var totalHeight = 0;
|
||||
elements = [];
|
||||
[].forEach.call(document.querySelectorAll('.content-section'), function (div) {
|
||||
var section = {};
|
||||
section.id = div.id;
|
||||
totalHeight += div.offsetHeight;
|
||||
section.maxHeight = totalHeight - 25;
|
||||
elements.push(section);
|
||||
});
|
||||
onScroll();
|
||||
}
|
||||
|
||||
function onScroll () {
|
||||
var scroll = window.pageYOffset;
|
||||
console.log('scroll', scroll, elements)
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var section = elements[i];
|
||||
if (scroll <= section.maxHeight) {
|
||||
var elems = document.querySelectorAll(".content-menu ul li");
|
||||
[].forEach.call(elems, function (el) {
|
||||
el.classList.remove("active");
|
||||
});
|
||||
var activeElems = document.querySelectorAll(".content-menu ul li[data-target='" + section.id + "']");
|
||||
[].forEach.call(activeElems, function (el) {
|
||||
el.classList.add("active");
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (window.innerHeight + scroll + 5 >= document.body.scrollHeight) { // end of scroll, last element
|
||||
var elems = document.querySelectorAll(".content-menu ul li");
|
||||
[].forEach.call(elems, function (el) {
|
||||
el.classList.remove("active");
|
||||
});
|
||||
var activeElems = document.querySelectorAll(".content-menu ul li:last-child");
|
||||
[].forEach.call(activeElems, function (el) {
|
||||
el.classList.add("active");
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
calculElements();
|
||||
window.onload = () => {
|
||||
calculElements();
|
||||
};
|
||||
window.addEventListener("resize", debounce(function (e) {
|
||||
e.preventDefault();
|
||||
calculElements();
|
||||
}));
|
||||
window.addEventListener('scroll', function (e) {
|
||||
e.preventDefault();
|
||||
onScroll();
|
||||
});
|
Reference in New Issue
Block a user