-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
57 lines (47 loc) · 1.65 KB
/
script.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
/*checks to see if element is in view */
document.addEventListener('DOMContentLoaded', () => {
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.classList.add('visible');
}
});
});
document.querySelectorAll('.rectangle').forEach(rectangle => { // make rectangles visible once they are in viewport
observer.observe(rectangle);
});
});
const slides = document.querySelectorAll('.slide');
const prevButton = document.querySelector('.prev');
const nextButton = document.querySelector('.next');
let currentSlide = 0;
let slideInterval = setInterval(nextSlide, 6000); // Auto-slide every 6 seconds
function showSlide(index) {
slides.forEach((slide, i) => {
slide.classList.remove('active');
if (i === index) {
slide.classList.add('active');
}
});
const offset = -index * 100;
document.querySelector('.slider').style.transform = `translateX(${offset}%)`;
}
function nextSlide() {
currentSlide = (currentSlide + 1) % slides.length;
showSlide(currentSlide);
}
function prevSlide() {
currentSlide = (currentSlide - 1 + slides.length) % slides.length;
showSlide(currentSlide);
}
// Manual navigation
nextButton.addEventListener('click', () => {
clearInterval(slideInterval); // Stop auto-slide when manually sliding
nextSlide();
slideInterval = setInterval(nextSlide, 6000); // Restart auto-slide
});
prevButton.addEventListener('click', () => {
clearInterval(slideInterval);
prevSlide();
slideInterval = setInterval(nextSlide, 6000);
});