-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
107 lines (106 loc) · 3.34 KB
/
Copy pathscript.js
File metadata and controls
107 lines (106 loc) · 3.34 KB
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
// --- Splash slider logic ---
const slides = document.querySelectorAll('.slide');
const dots = document.querySelectorAll('.dots-bar .dot');
let currentSlide = 0;
let slideInterval = null;
function showSlide(idx) {
slides.forEach((slide, i) => {
slide.classList.toggle('active', i === idx);
});
dots.forEach((dot, i) => {
dot.classList.toggle('active', i === idx);
});
currentSlide = idx;
}
function nextSlide() {
let nextIdx = (currentSlide + 1) % slides.length;
showSlide(nextIdx);
}
function startAutoSlide() {
slideInterval = setInterval(nextSlide, 3000);
}
function stopAutoSlide() {
if (slideInterval) clearInterval(slideInterval);
}
// Dot click (optional, for manual selection)
dots.forEach((dot, i) => {
dot.addEventListener('click', () => {
stopAutoSlide();
showSlide(i);
startAutoSlide();
});
});
// Start auto
startAutoSlide();
// --- Sliding logic for splash screen start button ---
const slider = document.getElementById('slider');
const btn = document.getElementById('slideBtn');
const splash = document.getElementById('splashScreen');
const home = document.getElementById('homePage');
let sliding = false, startX = 0, btnLeft = 0;
const minLeft = 0;
function getMaxLeft() {
return slider.offsetWidth - btn.offsetWidth;
}
function setBtnLeft(px) {
btn.style.left = px + "px";
}
function showHomePage() {
splash.classList.add('fade-out');
setTimeout(() => {
home.classList.add('active');
}, 550);
stopAutoSlide();
}
// Touch events for mobile
btn.addEventListener('touchstart', (e) => {
sliding = true;
startX = e.touches[0].clientX;
btnLeft = parseInt(btn.style.left) || 0;
});
btn.addEventListener('touchmove', (e) => {
if (!sliding) return;
let dx = e.touches[0].clientX - startX;
let newLeft = Math.min(Math.max(minLeft, btnLeft + dx), getMaxLeft());
setBtnLeft(newLeft);
}, {passive:false});
btn.addEventListener('touchend', () => {
if (!sliding) return;
if (parseInt(btn.style.left) >= getMaxLeft() * 0.85) {
setBtnLeft(getMaxLeft());
setTimeout(showHomePage, 250);
} else {
setBtnLeft(minLeft);
}
sliding = false;
});
// Mouse drag (for desktop dev)
btn.addEventListener('mousedown', (e) => {
sliding = true;
startX = e.clientX;
btnLeft = parseInt(btn.style.left) || 0;
document.body.style.userSelect = 'none';
});
window.addEventListener('mousemove', (e) => {
if (!sliding) return;
let dx = e.clientX - startX;
let newLeft = Math.min(Math.max(minLeft, btnLeft + dx), getMaxLeft());
setBtnLeft(newLeft);
});
window.addEventListener('mouseup', () => {
if (!sliding) return;
if (parseInt(btn.style.left) >= getMaxLeft() * 0.85) {
setBtnLeft(getMaxLeft());
setTimeout(showHomePage, 250);
} else {
setBtnLeft(minLeft);
}
sliding = false;
document.body.style.userSelect = '';
});
slider.addEventListener('touchmove', (e) => {
if (sliding) e.preventDefault();
}, {passive: false});
window.addEventListener('resize', () => {
setBtnLeft(0);
});