diff --git a/example2.html b/example2.html
new file mode 100644
index 0000000..3b5cdbc
--- /dev/null
+++ b/example2.html
@@ -0,0 +1,61 @@
+
+
+ scroll-to - smooth javascript element scrolling with requestAnimationFrame
+
+
+
+
+
+
+
+
+
diff --git a/index.js b/index.js
index 152e777..201451a 100644
--- a/index.js
+++ b/index.js
@@ -23,8 +23,13 @@ function scrollTo(x, y, options) {
options = options || {};
// start position
- var start = scroll();
-
+ var start = scroll(options.box);
+
+ if (options.box) {
+ y += options.box.scrollTop || 0;
+ x += options.box.scrollLeft || 0;
+ }
+
// setup tween
var tween = Tween(start)
.ease(options.ease || 'out-circ')
@@ -33,7 +38,11 @@ function scrollTo(x, y, options) {
// scroll
tween.update(function(o){
- window.scrollTo(o.left | 0, o.top | 0);
+ if (options.box) {
+ options.box.scrollTop = o.top;
+ options.box.scrollLeft = o.left;
+ }
+ else window.scrollTo(o.left | 0, o.top | 0);
});
// handle end
@@ -59,8 +68,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(box) {
+ var y = (box && box.scrollTop) || this.pageYOffset || document.documentElement.scrollTop;
+ var x = (box && box.scrollLeft) || this.pageXOffset || document.documentElement.scrollLeft;
return { top: y, left: x };
-}
+}
\ No newline at end of file