Order code
This commit is contained in:
36
src/events/click.js
Normal file
36
src/events/click.js
Normal file
@ -0,0 +1,36 @@
|
||||
|
||||
//===
|
||||
// FUNCTIONS
|
||||
//===
|
||||
|
||||
/**
|
||||
* Method add events is-click
|
||||
* return void
|
||||
*/
|
||||
function addEventClick() {
|
||||
let eventClick = 'is-click';
|
||||
return getElementsValidatesByEvent(eventClick).forEach((element) => {
|
||||
let params = splitParams(element, eventClick);
|
||||
switch(params.functionParent) {
|
||||
case 'class':
|
||||
[...document.querySelectorAll(params.target)].concat(params.target === undefined ? element : undefined).forEach((item) => {
|
||||
if (item !== undefined) {
|
||||
element.addEventListener('click', () => {
|
||||
switch(params.functionChild) {
|
||||
case 'add':
|
||||
item.classList.add(params.value);
|
||||
break;
|
||||
case 'remove':
|
||||
item.classList.remove(params.value);
|
||||
break;
|
||||
case 'toggle':
|
||||
item.classList.toggle(params.value);
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
57
src/events/hover.js
Normal file
57
src/events/hover.js
Normal file
@ -0,0 +1,57 @@
|
||||
|
||||
//===
|
||||
// FUNCTIONS
|
||||
//===
|
||||
|
||||
/**
|
||||
* Method add events is-hover
|
||||
* return void
|
||||
*/
|
||||
function addEventHover() {
|
||||
let eventHover = 'is-hover';
|
||||
return getElementsValidatesByEvent(eventHover).forEach((element) => {
|
||||
let params = splitParams(element, eventHover);
|
||||
switch(params.functionParent) {
|
||||
case 'class':
|
||||
[...document.querySelectorAll(params.target)].concat(params.target === undefined ? element : undefined).forEach((item) => {
|
||||
if (item !== undefined) {
|
||||
// Enter
|
||||
switch(params.functionChild) {
|
||||
case 'add':
|
||||
// Enter
|
||||
element.addEventListener('mouseenter', () => {
|
||||
item.classList.add(params.value);
|
||||
});
|
||||
// Out
|
||||
element.addEventListener('mouseout', () => {
|
||||
item.classList.remove(params.value);
|
||||
});
|
||||
break;
|
||||
case 'remove':
|
||||
// Enter
|
||||
element.addEventListener('mouseenter', () => {
|
||||
item.classList.remove(params.value);
|
||||
});
|
||||
// Out
|
||||
element.addEventListener('mouseout', () => {
|
||||
item.classList.add(params.value);
|
||||
});
|
||||
break;
|
||||
case 'toggle':
|
||||
// Enter
|
||||
element.addEventListener('mouseenter', () => {
|
||||
item.classList.toggle(params.value);
|
||||
});
|
||||
// Out
|
||||
element.addEventListener('mouseout', () => {
|
||||
item.classList.toggle(params.value);
|
||||
});
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
56
src/events/scroll.js
Normal file
56
src/events/scroll.js
Normal file
@ -0,0 +1,56 @@
|
||||
|
||||
//===
|
||||
// FUNCTIONS
|
||||
//===
|
||||
|
||||
/**
|
||||
* Method add events is-scroll
|
||||
* return void
|
||||
*/
|
||||
function addEventScroll() {
|
||||
let eventScrollDown = 'is-scroll-down';
|
||||
let eventScrollUp = 'is-scroll-up';
|
||||
let elementsDown = getElementsValidatesByEvent(eventScrollDown);
|
||||
let elementsUp = getElementsValidatesByEvent(eventScrollUp);
|
||||
window.addEventListener("scroll", () => {
|
||||
let posScroll = window.pageYOffset || document.documentElement.scrollTop;
|
||||
// Scroll down
|
||||
elementsDown.forEach((element) => {
|
||||
if (posScroll > lastScrollTop) {
|
||||
let params = splitParams(element, eventScrollDown);
|
||||
switch(params.functionParent) {
|
||||
case 'class':
|
||||
switch(params.functionChild) {
|
||||
case 'add':
|
||||
element.classList.add(params.value);
|
||||
break;
|
||||
case 'remove':
|
||||
element.classList.remove(params.value);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
// Scroll up
|
||||
elementsUp.forEach((element) => {
|
||||
if (posScroll <= lastScrollTop) {
|
||||
let params = splitParams(element, eventScrollUp);
|
||||
switch(params.functionParent) {
|
||||
case 'class':
|
||||
switch(params.functionChild) {
|
||||
case 'add':
|
||||
element.classList.add(params.value);
|
||||
break;
|
||||
case 'remove':
|
||||
element.classList.remove(params.value);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
lastScrollTop = posScroll <= 0 ? 0 : posScroll; // For Mobile or negative scrolling
|
||||
}, false);
|
||||
}
|
||||
|
54
src/events/visible.js
Normal file
54
src/events/visible.js
Normal file
@ -0,0 +1,54 @@
|
||||
|
||||
//===
|
||||
// FUNCTIONS
|
||||
//===
|
||||
|
||||
/**
|
||||
* Method that manages the events is-visible and is-not-visible
|
||||
* return void
|
||||
*/
|
||||
function addEventVisible() {
|
||||
let eventVisible = 'is-visible';
|
||||
let eventNotVisible = 'is-not-visible';
|
||||
let elementsVisibles = getElementsValidatesByEvent(eventVisible);
|
||||
let elementsNotVisibles = getElementsValidatesByEvent(eventNotVisible);
|
||||
window.addEventListener("scroll", () => {
|
||||
// Visible
|
||||
elementsVisibles.forEach((element) => {
|
||||
if (isInViewport(element)) {
|
||||
let params = splitParams(element, eventVisible);
|
||||
switch(params.functionParent) {
|
||||
case 'class':
|
||||
switch(params.functionChild) {
|
||||
case 'add':
|
||||
element.classList.add(params.value);
|
||||
break;
|
||||
case 'remove':
|
||||
element.classList.remove(params.value);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
// Not visible
|
||||
elementsNotVisibles.forEach((element) => {
|
||||
if (!isInViewport(element)) {
|
||||
let params = splitParams(element, eventNotVisible);
|
||||
switch(params.functionParent) {
|
||||
case 'class':
|
||||
switch(params.functionChild) {
|
||||
case 'add':
|
||||
element.classList.add(params.value);
|
||||
break;
|
||||
case 'remove':
|
||||
element.classList.remove(params.value);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
}, false);
|
||||
}
|
||||
|
Reference in New Issue
Block a user