const addEventOnElements = function (elements, eventType, callback) {
for (let i = 0, len = elements.length; i < len; i++) {
elements[i].addEventListener(eventType, callback);
}
}
window.addEventListener("mousemove", function (event) {
x = (event.clientX / window.innerWidth 10) - 5;
y = (event.clientY / window.innerHeight 10) - 5;
x = x - (x 2);
y = y - (y 2);
for (let i = 0, len = parallaxItems.length; i < len; i++) {
x = x Number(parallaxItems[i].dataset.parallaxSpeed);
y = y Number(parallaxItems[i].dataset.parallaxSpeed);
parallaxItems[i].style.transform = translate3d(${x}px, ${y}px, 0px);
}
});
the loader is fixed and the signintime is 2000 miliseconds = 2 sec here's the code /**
const preloader = document.querySelector("[data-preaload]");
window.addEventListener("load", function () { setTimeout(() => { preloader.classList.add("loaded"); document.body.classList.add("loaded"); }, 2000); });
/**
const addEventOnElements = function (elements, eventType, callback) { for (let i = 0, len = elements.length; i < len; i++) { elements[i].addEventListener(eventType, callback); } }
/**
const navbar = document.querySelector("[data-navbar]"); const navTogglers = document.querySelectorAll("[data-nav-toggler]"); const overlay = document.querySelector("[data-overlay]");
const toggleNavbar = function () { navbar.classList.toggle("active"); document.body.classList.toggle("nav-active"); }
/**
let currentSlidePos = 0; let lastActiveSliderItem = heroSliderItems[currentSlidePos];
const updateSliderPos = function () { if (lastActiveSliderItem) { lastActiveSliderItem.classList.add("non-active"); }
heroSliderItems[currentSlidePos]?.classList.remove("activated");
lastActiveSliderItem = heroSliderItems[currentSlidePos]; }
const slideNext = function () { currentSlidePos = (currentSlidePos + 1) % heroSliderItems.length; updateSliderPos(); }
heroSliderNextBtn?.addEventListener("click", slideNext);
const slidePrev = function () { currentSlidePos = (currentSlidePos - 1 + heroSliderItems.length) % heroSliderItems.length; updateSliderPos(); }
heroSliderPrevBtn?.addEventListener("click", slidePrev);
/**
let autoSlideInterval;
const autoSlide = function () { autoSlideInterval = setInterval(function () { slideNext(); }, 7000); }
addEventOnElements([heroSliderNextBtn, heroSliderPrevBtn], "mouseover", function () { clearInterval(autoSlideInterval); });
addEventOnElements([heroSliderNextBtn, heroSliderPrevBtn], "mouseout", autoSlide);
window.addEventListener("load", autoSlide);
/**
const parallaxItems = document.querySelectorAll("[data-parallax-item]");
let x, y;
window.addEventListener("mousemove", function (event) { x = (event.clientX / window.innerWidth 10) - 5; y = (event.clientY / window.innerHeight 10) - 5;
x = x - (x 2); y = y - (y 2);
for (let i = 0, len = parallaxItems.length; i < len; i++) { x = x Number(parallaxItems[i].dataset.parallaxSpeed); y = y Number(parallaxItems[i].dataset.parallaxSpeed); parallaxItems[i].style.transform =
translate3d(${x}px, ${y}px, 0px)
; } });