From f7eed604d75800e31159e447f041b3cab9336588 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Moreira?= Date: Mon, 14 Nov 2016 11:21:21 +0000 Subject: [PATCH] Add scroller as an option You don't always have to scroll window. There are plenty cases where you need to specify the scroller, it could be any element inside the document. --- index.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/index.js b/index.js index 152e777..8b6c538 100644 --- a/index.js +++ b/index.js @@ -21,9 +21,11 @@ module.exports = scrollTo; function scrollTo(x, y, options) { options = options || {}; + + var scroller = options.scroller || window; // start position - var start = scroll(); + var start = scroll(scroller); // setup tween var tween = Tween(start) @@ -33,7 +35,7 @@ function scrollTo(x, y, options) { // scroll tween.update(function(o){ - window.scrollTo(o.left | 0, o.top | 0); + scroller.scrollTo(o.left | 0, o.top | 0); }); // handle end @@ -59,8 +61,8 @@ function scrollTo(x, y, options) { * @api private */ -function scroll() { - var y = window.pageYOffset || document.documentElement.scrollTop; - var x = window.pageXOffset || document.documentElement.scrollLeft; +function scroll(scroller) { + var y = scroller.scrollTop || window.pageYOffset; + var x = scroller.scrollLeft || window.pageXOffset; return { top: y, left: x }; }