This commit is contained in:
8
assets/js/alpine.min.js
vendored
Normal file
8
assets/js/alpine.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
20
assets/js/chart.js
Normal file
20
assets/js/chart.js
Normal file
File diff suppressed because one or more lines are too long
7
assets/js/chartjs-plugin-datalabels.js
Normal file
7
assets/js/chartjs-plugin-datalabels.js
Normal file
File diff suppressed because one or more lines are too long
1
assets/js/collapse.js
Normal file
1
assets/js/collapse.js
Normal file
@@ -0,0 +1 @@
|
||||
(function(){var triggers=document.querySelectorAll("[data-collapse-target]");var collapses=document.querySelectorAll("[data-collapse]");if(triggers&&collapses){Array.from(triggers).forEach(function(trigger){return Array.from(collapses).forEach(function(collapse){if(trigger.dataset.collapseTarget===collapse.dataset.collapse){trigger.addEventListener("click",function(){if(collapse.style.height&&collapse.style.height!=="0px"){collapse.style.height=0;collapse.style.overflow="hidden";trigger.removeAttribute("open")}else{collapse.style.height="".concat(collapse.children[0].clientHeight,"px");collapse.style.overflow="visible";trigger.setAttribute("open","")}})}})})}})();
|
||||
50
assets/js/counter.js
Normal file
50
assets/js/counter.js
Normal file
@@ -0,0 +1,50 @@
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
var elements = document.querySelectorAll(".scroll-counter")
|
||||
elements.forEach(function (item) {
|
||||
item.counterAlreadyFired = false
|
||||
item.counterSpeed = item.getAttribute("data-counter-time") / 45
|
||||
item.counterTarget = +item.innerText
|
||||
item.counterCount = 0
|
||||
item.counterStep = item.counterTarget / item.counterSpeed
|
||||
|
||||
item.updateCounter = function () {
|
||||
console.log(45);
|
||||
item.counterCount = item.counterCount + item.counterStep
|
||||
item.innerText = Math.ceil(item.counterCount)
|
||||
|
||||
if (item.counterCount < item.counterTarget) {
|
||||
setTimeout(item.updateCounter, item.counterSpeed)
|
||||
} else {
|
||||
item.innerText = item.counterTarget
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
var isElementVisible = function isElementVisible(el) {
|
||||
var scroll = window.scrollY || window.pageYOffset
|
||||
var boundsTop = el.getBoundingClientRect().top + scroll
|
||||
var viewport = {
|
||||
top: scroll,
|
||||
bottom: scroll + window.innerHeight,
|
||||
}
|
||||
var bounds = {
|
||||
top: boundsTop,
|
||||
bottom: boundsTop + el.clientHeight,
|
||||
}
|
||||
return (
|
||||
(bounds.bottom >= viewport.top && bounds.bottom <= viewport.bottom) ||
|
||||
(bounds.top <= viewport.bottom && bounds.top >= viewport.top)
|
||||
)
|
||||
}
|
||||
|
||||
var handleScroll = function handleScroll() {
|
||||
elements.forEach(function (item, id) {
|
||||
if (true === item.counterAlreadyFired) return
|
||||
if (!isElementVisible(item)) return
|
||||
item.updateCounter()
|
||||
item.counterAlreadyFired = true
|
||||
})
|
||||
}
|
||||
window.addEventListener("scroll", handleScroll)
|
||||
|
||||
})
|
||||
Reference in New Issue
Block a user