diff --git a/angular-scroll.js b/angular-scroll.js index 086980e..7a275e8 100644 --- a/angular-scroll.js +++ b/angular-scroll.js @@ -38,11 +38,14 @@ run(function($window, $q, cancelAnimation, requestAnimation, duScrollEasing) { }; proto.scrollTo = function(left, top, duration, easing) { + var aliasFn; if(angular.isElement(left)) { - return this.scrollToElement(left, 0, top, duration); + aliasFn = this.scrollToElement; + } else if(duration) { + aliasFn = this.scrollToAnimated; } - if(duration) { - return this.scrollToAnimated.apply(this, arguments); + if(aliasFn) { + return aliasFn.apply(this, arguments); } var el = unwrap(this); if(isDocument(el)) { diff --git a/angular-scroll.min.js b/angular-scroll.min.js index d0c5f7b..4b637ad 100644 --- a/angular-scroll.min.js +++ b/angular-scroll.min.js @@ -1 +1 @@ -var duScrollDefaultEasing=function(t){return.5>t?Math.pow(2*t,2)/2:1-Math.pow(2*(1-t),2)/2};angular.module("duScroll",["duScroll.scrollspy","duScroll.requestAnimation","duScroll.smoothScroll","duScroll.scrollContainer","duScroll.scrollHelpers"]).value("duScrollDuration",350).value("duScrollEasing",duScrollDefaultEasing),angular.module("duScroll.scrollHelpers",[]).run(["$window","$q","cancelAnimation","requestAnimation","duScrollEasing",function(t,e,n,r,o){var l=angular.element.prototype;this.$get=function(){return l};var i=function(t){return"undefined"!=typeof HTMLDocument&&t instanceof HTMLDocument||t.nodeType&&t.nodeType===t.DOCUMENT_NODE},u=function(t){return"undefined"!=typeof HTMLElement&&t instanceof HTMLElement||t.nodeType&&t.nodeType===t.ELEMENT_NODE},c=function(t){return u(t)||i(t)?t:t[0]};l.scrollTo=function(e,n,r){if(angular.isElement(e))return this.scrollToElement(e,0,n,r);if(r)return this.scrollToAnimated.apply(this,arguments);var o=c(this);return i(o)?t.scrollTo(e,n):(o.scrollLeft=e,void(o.scrollTop=n))};var a,s;l.scrollToAnimated=function(t,l,i,u){i&&!u&&(u=o);var c=this.scrollLeft(),d=this.scrollTop(),f=Math.round(t-c),p=Math.round(l-d);if(f||p){var m=null;a&&(n(a),s.reject());var g=this;s=e.defer();var v=function(t){null===m&&(m=t);var e=t-m,n=e>=i?1:u(e/i);g.scrollTo(c+Math.ceil(f*n),d+Math.ceil(p*n)),1>n?a=r(v):(a=null,s.resolve())};return a=r(v),s.promise}},l.scrollToElement=function(t,e,n,r){var o=c(this),l=this.scrollTop()+c(t).getBoundingClientRect().top-e;return u(o)&&(l-=o.getBoundingClientRect().top),this.scrollTo(0,l,n,r)};var d={scrollLeft:function(e,n,r){if(angular.isNumber(e))return this.scrollTo(e,this.scrollTop(),n,r);var o=c(this);return i(o)?t.scrollX||document.documentElement.scrollLeft||document.body.scrollLeft:o.scrollLeft},scrollTop:function(e,n,r){if(angular.isNumber(e))return this.scrollTo(this.scrollTop(),e,n,r);var o=c(this);return i(o)?t.scrollY||document.documentElement.scrollTop||document.body.scrollTop:o.scrollTop}},f=function(t,e){return function(n,r){return r?e.apply(this,arguments):t.apply(this,arguments)}};for(var p in d)l[p]=l[p]?f(l[p],d[p]):d[p]}]),angular.module("duScroll.polyfill",[]).factory("polyfill",["$window",function(t){var e=["webkit","moz","o","ms"];return function(n,r){if(t[n])return t[n];for(var o,l=n.substr(0,1).toUpperCase()+n.substr(1),i=0;it?Math.pow(2*t,2)/2:1-Math.pow(2*(1-t),2)/2};angular.module("duScroll",["duScroll.scrollspy","duScroll.requestAnimation","duScroll.smoothScroll","duScroll.scrollContainer","duScroll.scrollHelpers"]).value("duScrollDuration",350).value("duScrollEasing",duScrollDefaultEasing),angular.module("duScroll.scrollHelpers",[]).run(["$window","$q","cancelAnimation","requestAnimation","duScrollEasing",function(t,e,n,r,o){var l=angular.element.prototype;this.$get=function(){return l};var i=function(t){return"undefined"!=typeof HTMLDocument&&t instanceof HTMLDocument||t.nodeType&&t.nodeType===t.DOCUMENT_NODE},c=function(t){return"undefined"!=typeof HTMLElement&&t instanceof HTMLElement||t.nodeType&&t.nodeType===t.ELEMENT_NODE},u=function(t){return c(t)||i(t)?t:t[0]};l.scrollTo=function(e,n,r){var o;if(angular.isElement(e)?o=this.scrollToElement:r&&(o=this.scrollToAnimated),o)return o.apply(this,arguments);var l=u(this);return i(l)?t.scrollTo(e,n):(l.scrollLeft=e,void(l.scrollTop=n))};var a,s;l.scrollToAnimated=function(t,l,i,c){i&&!c&&(c=o);var u=this.scrollLeft(),d=this.scrollTop(),f=Math.round(t-u),p=Math.round(l-d);if(f||p){var m=null;a&&(n(a),s.reject());var g=this;s=e.defer();var v=function(t){null===m&&(m=t);var e=t-m,n=e>=i?1:c(e/i);g.scrollTo(u+Math.ceil(f*n),d+Math.ceil(p*n)),1>n?a=r(v):(a=null,s.resolve())};return a=r(v),s.promise}},l.scrollToElement=function(t,e,n,r){var o=u(this),l=this.scrollTop()+u(t).getBoundingClientRect().top-e;return c(o)&&(l-=o.getBoundingClientRect().top),this.scrollTo(0,l,n,r)};var d={scrollLeft:function(e,n,r){if(angular.isNumber(e))return this.scrollTo(e,this.scrollTop(),n,r);var o=u(this);return i(o)?t.scrollX||document.documentElement.scrollLeft||document.body.scrollLeft:o.scrollLeft},scrollTop:function(e,n,r){if(angular.isNumber(e))return this.scrollTo(this.scrollTop(),e,n,r);var o=u(this);return i(o)?t.scrollY||document.documentElement.scrollTop||document.body.scrollTop:o.scrollTop}},f=function(t,e){return function(n,r){return r?e.apply(this,arguments):t.apply(this,arguments)}};for(var p in d)l[p]=l[p]?f(l[p],d[p]):d[p]}]),angular.module("duScroll.polyfill",[]).factory("polyfill",["$window",function(t){var e=["webkit","moz","o","ms"];return function(n,r){if(t[n])return t[n];for(var o,l=n.substr(0,1).toUpperCase()+n.substr(1),i=0;i