Some ignored filles was missing
This commit is contained in:
parent
7db22245e2
commit
fd5ab6bc0d
268 changed files with 31970 additions and 4 deletions
104
wwwroot/js/edge-scroll.js
Normal file
104
wwwroot/js/edge-scroll.js
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
// edge-scroll.js - med timeout + tidsbaseret scroll
|
||||
(function() {
|
||||
'use strict';
|
||||
|
||||
const OUTER_ZONE = 100; // px fra kant (langsom zone)
|
||||
const INNER_ZONE = 50; // px fra kant (hurtig zone)
|
||||
const SLOW_SPEED_PXS = 800; // px/sek i outer zone
|
||||
const FAST_SPEED_PXS = 2400; // px/sek i inner zone
|
||||
|
||||
let scrollableContent = null;
|
||||
let scrollRAF = null;
|
||||
let mouseY = 0;
|
||||
let haveMouse = false;
|
||||
let lastTs = 0;
|
||||
let rect = null;
|
||||
|
||||
function init() {
|
||||
console.log('edge-scroll.js: waiting 1000ms before setup...');
|
||||
setTimeout(setup, 1000);
|
||||
}
|
||||
|
||||
function setup() {
|
||||
console.log('edge-scroll.js: setup() called');
|
||||
|
||||
scrollableContent = document.querySelector('swp-scrollable-content');
|
||||
if (!scrollableContent) {
|
||||
console.error('edge-scroll.js: swp-scrollable-content NOT FOUND');
|
||||
return;
|
||||
}
|
||||
|
||||
console.log('edge-scroll.js: found scrollableContent:', scrollableContent);
|
||||
|
||||
// slå smooth scroll fra, så autoscroll er øjeblikkelig
|
||||
scrollableContent.style.scrollBehavior = 'auto';
|
||||
|
||||
scrollableContent.addEventListener('mousemove', handleMouseMove, { passive: true });
|
||||
scrollableContent.addEventListener('mouseleave', handleMouseLeave, { passive: true });
|
||||
|
||||
console.log('edge-scroll.js: ✅ listeners attached');
|
||||
}
|
||||
|
||||
function handleMouseMove(e) {
|
||||
haveMouse = true;
|
||||
mouseY = e.clientY;
|
||||
if (scrollRAF == null) {
|
||||
lastTs = performance.now();
|
||||
scrollRAF = requestAnimationFrame(scrollTick);
|
||||
}
|
||||
}
|
||||
|
||||
function handleMouseLeave() {
|
||||
haveMouse = false;
|
||||
stopScrolling();
|
||||
}
|
||||
|
||||
function stopScrolling() {
|
||||
if (scrollRAF != null) {
|
||||
cancelAnimationFrame(scrollRAF);
|
||||
scrollRAF = null;
|
||||
}
|
||||
lastTs = 0;
|
||||
}
|
||||
|
||||
function scrollTick(ts) {
|
||||
const dt = lastTs ? (ts - lastTs) / 1000 : 0;
|
||||
lastTs = ts;
|
||||
|
||||
if (!rect) rect = scrollableContent.getBoundingClientRect();
|
||||
|
||||
let vy = 0;
|
||||
if (haveMouse) {
|
||||
const distTop = mouseY - rect.top;
|
||||
const distBot = rect.bottom - mouseY;
|
||||
|
||||
// Check top edge
|
||||
if (distTop < INNER_ZONE) {
|
||||
// Inner zone (0-50px) - fast speed
|
||||
vy = -FAST_SPEED_PXS;
|
||||
} else if (distTop < OUTER_ZONE) {
|
||||
// Outer zone (50-100px) - slow speed
|
||||
vy = -SLOW_SPEED_PXS;
|
||||
}
|
||||
// Check bottom edge
|
||||
else if (distBot < INNER_ZONE) {
|
||||
// Inner zone (0-50px) - fast speed
|
||||
vy = FAST_SPEED_PXS;
|
||||
} else if (distBot < OUTER_ZONE) {
|
||||
// Outer zone (50-100px) - slow speed
|
||||
vy = SLOW_SPEED_PXS;
|
||||
}
|
||||
}
|
||||
|
||||
if (vy !== 0) {
|
||||
scrollableContent.scrollTop += vy * dt;
|
||||
rect = null; // mål kun én gang pr. frame
|
||||
scrollRAF = requestAnimationFrame(scrollTick);
|
||||
} else {
|
||||
stopScrolling();
|
||||
}
|
||||
}
|
||||
|
||||
// start init
|
||||
init();
|
||||
})();
|
||||
Loading…
Add table
Add a link
Reference in a new issue