Skip to content

Instantly share code, notes, and snippets.

@sketchpunk
Created April 20, 2020 20:50
Show Gist options
  • Select an option

  • Save sketchpunk/bc6ef16e0af591e19729091a1404cf8d to your computer and use it in GitHub Desktop.

Select an option

Save sketchpunk/bc6ef16e0af591e19729091a1404cf8d to your computer and use it in GitHub Desktop.
Scroll to an Element on a page.
<!DOCTYPE html>
<html>
<head>
<title>Scroll</title>
</head>
<body>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<div name="spot">001</div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<div name="spot">002</div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<div name="spot">003</div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<div name="spot">004</div>
<script>
let i=-1;
document.body.addEventListener( "mouseup", (e)=>{
let ary = document.querySelectorAll( "div[name='spot']");
i = (i + 1) % ary.length;
let a = ary[ i ];
window.scroll( 0, offset_top( a ) );
});
function offset(el) {
var rect = el.getBoundingClientRect(),
scrollLeft = window.pageXOffset || document.documentElement.scrollLeft,
scrollTop = window.pageYOffset || document.documentElement.scrollTop;
return rect.top + scrollTop;
return { top: rect.top + scrollTop, left: rect.left + scrollLeft }
}
function offset_top( elm ){
let rect = elm.getBoundingClientRect();
return rect.top + ( window.pageYOffset || document.documentElement.scrollTop );
}
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment