From 5d9ca3d0febac2680fe3e4d3ff5b56838146f1ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Renato=20de=20Le=C3=A3o?= Date: Tue, 12 Dec 2017 11:52:09 +0000 Subject: [PATCH] Get scroll position of HTMLElement / window --- README.md | 15 +++++++++++++++ snippets/get-scroll-position.md | 14 ++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 snippets/get-scroll-position.md diff --git a/README.md b/README.md index 543dbd858..fdc7177c2 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ * [Fibonacci array generator](#fibonacci-array-generator) * [Filter out non uniqe values in an array](#filter-out-non-uniqe-values-in-an-array) * [Flatten array](#flatten-array) +* [Get scroll position](#get-scroll-position) * [Greatest common divisor (GCD)](#greatest-common-divisor-gcd) * [Head of list](#head-of-list) * [Initial of list](#initial-of-list) @@ -187,6 +188,20 @@ var flatten = arr => arr.reduce( (a, v) => a.concat( Array.isArray(v) ? flatten(v) : v ), []); ``` +## Get Scroll Position + +Get the current distance scrolled by `window` or `HTMLElement` as an {x,y} object + +```js +const getScrollPos = (scroller = window) => { + let x = (scroller.pageXOffset !== undefined) ? scroller.pageXOffset : scroller.scrollLeft; + let y = (scroller.pageYOffset !== undefined) ? scroller.pageYOffset : scroller.scrollTop; + + return {x, y} +} + +// getScrollPos() -> {x: number, y: number} +``` ### Greatest common divisor (GCD) Use recursion. diff --git a/snippets/get-scroll-position.md b/snippets/get-scroll-position.md new file mode 100644 index 000000000..99cd00736 --- /dev/null +++ b/snippets/get-scroll-position.md @@ -0,0 +1,14 @@ +## Get Scroll Position + +Get the current distance scrolled by `window` or `HTMLElement` as an {x,y} object + +```js +const getScrollPos = (scroller = window) => { + let x = (scroller.pageXOffset !== undefined) ? scroller.pageXOffset : scroller.scrollLeft; + let y = (scroller.pageYOffset !== undefined) ? scroller.pageYOffset : scroller.scrollTop; + + return {x, y} +} + +// getScrollPos() -> {x: number, y: number} +``` \ No newline at end of file