-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.js
117 lines (106 loc) · 4 KB
/
main.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/************************************
* *
* PRELOADER ELEMENT *
* *
************************************/
var preloader = document.querySelector('#preloader');
window.addEventListener('load', function(){
setTimeout(function(){preloader.remove()}, 1000);
});
/************************************
* *
* HIDE NAVBAR ONCLICK EVERYWHERE *
* *
************************************/
var body = document.querySelector('body');
var nbCollapse = document.querySelector('.navbar-collapse');
var hide = new bootstrap.Collapse(nbCollapse, { toggle: false });
body.addEventListener('click', function () {
if (nbCollapse.classList.contains('show')) {
hide.toggle();
}
});
/************************************
* *
* HIDE/COLLAPSE NAVBAR ON SCROLL *
* *
************************************/
var navbar = document.querySelector('#navigation');
var nbHeight = parseFloat(getComputedStyle(navbar, null).height);
var prevScrollpos = window.pageYOffset;
window.onscroll = function () {
var currentScrollPos = window.pageYOffset;
if (prevScrollpos > currentScrollPos) {
navbar.classList.add('scroll-down');
navbar.classList.remove('scroll-up');
if (nbCollapse.classList.contains('show')) {
hide.toggle();
}
} else {
navbar.classList.remove('scroll-down');
navbar.classList.add('scroll-up');
if (nbCollapse.classList.contains('show')) {
hide.toggle();
}
}
prevScrollpos = currentScrollPos;
};
/************************************
* *
* CAROUSEL INDICATOR add active *
* *
************************************/
var myCarousel = document.querySelector('#carouselPage');
myCarousel.addEventListener('slide.bs.carousel', (event) => {
var elementChildrens = document.querySelector('.carousel-controls').children;
elementChildrens.item(event.from).classList.remove('active');
elementChildrens.item(event.to).classList.add('active');
document.body.scrollTop = 0; // safari
document.documentElement.scrollTop = 0; // webkit
});
/************************************
* *
* BOOTSTRAP TOOLTIP TRIGGER *
* *
************************************/
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl);
});
/************************************
* *
* CONTACT FORM *
* *
************************************/
var form = document.getElementById('fs-frm');
async function handleSubmit(event) {
event.preventDefault();
var status = document.querySelector('.toast-body');
var data = new FormData(event.target);
fetch(event.target.action, {
method: form.method,
body: data,
headers: {
Accept: 'application/json',
},
})
.then((response) => {
status.innerHTML = 'Thanks for your submission!';
toastList.forEach((toast) => toast.show());
form.reset();
})
.catch((error) => {
status.innerHTML = 'Oops! There was a problem submitting your form';
toastList.forEach((toast) => toast.show());
});
}
form.addEventListener('submit', handleSubmit);
/************************************
* *
* TOAST FORM *
* *
************************************/
var toastElList = [].slice.call(document.querySelectorAll('.toast'));
var toastList = toastElList.map(function (toastEl) {
return new bootstrap.Toast(toastEl);
});