Scroll velocity

by kmouse

HTML

<pre>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse quis ultrices dolor. Morbi ultrices mauris ut leo scelerisque, sed tristique enim imperdiet. Suspendisse potenti. Nunc elit quam, varius in pharetra at, commodo eget massa. Donec varius imperdiet facilisis. Proin eget nisi vulputate ex suscipit varius. Duis consectetur ornare sollicitudin. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam velit eros, viverra vitae placerat vel, tempor ut elit. Fusce ac urna ut dolor congue porta nec quis arcu. Integer vitae nibh ultricies, viverra nulla sit amet, volutpat eros. Fusce non condimentum mi.

Nullam a ante consequat, tincidunt urna quis, aliquet risus. Quisque at augue non est vestibulum eleifend vitae quis est. Nulla vel nulla elit. Ut enim eros, hendrerit a vehicula ac, consectetur sollicitudin velit. Duis egestas nisi tortor, id rhoncus eros vulputate ut. Donec quis quam quam. Nulla eget eros sit amet odio dapibus tincidunt placerat eu lorem. Integer aliquet quam quis ligula porta dignissim. Ut vitae vehicula odio. Pellentesque tempus, ex nec tempor bibendum, sem diam congue leo, id laoreet est lorem quis lectus. Cras in eleifend mauris. Vestibulum hendrerit sit amet nibh eget blandit. Vivamus aliquam lacinia diam, at finibus lacus hendrerit vitae. Aenean nec lorem suscipit, commodo arcu in, feugiat tortor. Sed elementum malesuada metus. Phasellus lacinia varius lobortis.

Duis egestas mauris ac purus tincidunt ultrices. Pellentesque eu porttitor diam. Proin nec quam ac magna vestibulum accumsan. Proin fringilla, nibh at aliquam blandit, sem risus placerat ligula, suscipit pellentesque elit est sed magna. Morbi dictum facilisis pulvinar. Curabitur sit amet tincidunt sem. Ut sollicitudin sagittis turpis, eu maximus nisi accumsan et. Curabitur tristique sem mi, quis vehicula risus sagittis eu. Pellentesque quis ante venenatis, porta erat id, varius augue. Aenean feugiat, arcu et mollis sodales,...

CSS

body  {
	font-size: 30px;
}

pre { white-space: pre-wrap; }

JavaScript

var lastY = 0;

var firstUpdate = Date.now();
var lastUpdate = Date.now();
//var myInterval = setInterval(tick, 0);

document.addEventListener("scroll", (event) => {
  var Y = window.scrollY;
	var dY = Y - lastY;
	lastY = Y;
  
  var now = Date.now();
  var dt = now - lastUpdate;
  lastUpdate = now;
	
	console.log("t: " + (now-firstUpdate) +  "   Y: " + Y + "  V: " + dY/dt);
});