-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
40 lines (36 loc) · 979 Bytes
/
Copy pathscript.js
File metadata and controls
40 lines (36 loc) · 979 Bytes
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
/**
* Reevu Adakroy - Portfolio
* Content positioning & interactions
*/
document.addEventListener('DOMContentLoaded', () => {
initSmoothScroll();
initEntrance();
});
/**
* Smooth scroll for anchor links within the page
*/
function initSmoothScroll() {
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function(e) {
const href = this.getAttribute('href');
if (href === '#') return;
e.preventDefault();
const target = document.querySelector(href);
if (target) {
const targetTop = target.getBoundingClientRect().top + window.scrollY;
window.scrollTo({ top: targetTop - 40, behavior: 'smooth' });
}
});
});
}
/**
* Staggered entrance fade-in on load
*/
function initEntrance() {
const elements = document.querySelectorAll('.fade-in');
elements.forEach((el, i) => {
setTimeout(() => {
el.classList.add('visible');
}, 200 + i * 150);
});
}