11/*!
2- * Smooth Scroll - v1.4.13 - 2013-11-02
2+ * Smooth Scroll - v1.5.0 - 2014-08-11
33 * https://github.com/kswedberg/jquery-smooth-scroll
4- * Copyright (c) 2013 Karl Swedberg
4+ * Copyright (c) 2014 Karl Swedberg
55 * Licensed MIT (https://github.com/kswedberg/jquery-smooth-scroll/blob/master/LICENSE-MIT)
66 */
77
88( function ( $ ) {
9- var version = '1.4.13 ' ,
9+ var version = '1.5.0 ' ,
1010 optionOverrides = { } ,
1111 defaults = {
1212 exclude : [ ] ,
@@ -34,7 +34,7 @@ var version = '1.4.13',
3434 speed : 400 ,
3535
3636 // coefficient for "auto" speed
37- autoCoefficent : 2 ,
37+ autoCoefficient : 2 ,
3838
3939 // $.fn.smoothScroll only: whether to prevent the default click action
4040 preventDefault : true
@@ -43,11 +43,11 @@ var version = '1.4.13',
4343 getScrollable = function ( opts ) {
4444 var scrollable = [ ] ,
4545 scrolled = false ,
46- dir = opts . dir && opts . dir == 'left' ? 'scrollLeft' : 'scrollTop' ;
46+ dir = opts . dir && opts . dir === 'left' ? 'scrollLeft' : 'scrollTop' ;
4747
4848 this . each ( function ( ) {
4949
50- if ( this == document || this == window ) { return ; }
50+ if ( this === document || this = == window ) { return ; }
5151 var el = $ ( this ) ;
5252 if ( el [ dir ] ( ) > 0 ) {
5353 scrollable . push ( this ) ;
@@ -68,7 +68,7 @@ var version = '1.4.13',
6868 // (doing this because Safari sets scrollTop async,
6969 // so can't set it to 1 and immediately get the value.)
7070 if ( ! scrollable . length ) {
71- this . each ( function ( index ) {
71+ this . each ( function ( ) {
7272 if ( this . nodeName === 'BODY' ) {
7373 scrollable = [ this ] ;
7474 }
@@ -81,8 +81,7 @@ var version = '1.4.13',
8181 }
8282
8383 return scrollable ;
84- } ,
85- isTouch = 'ontouchend' in document ;
84+ } ;
8685
8786$ . fn . extend ( {
8887 scrollable : function ( dir ) {
@@ -152,6 +151,7 @@ $.fn.extend({
152151 scrollTarget : thisOpts . scrollTarget || thisHash ,
153152 link : link
154153 } ) ;
154+
155155 $ . smoothScroll ( clickOpts ) ;
156156 }
157157 } ) ;
@@ -164,13 +164,12 @@ $.smoothScroll = function(options, px) {
164164 if ( options === 'options' && typeof px === 'object' ) {
165165 return $ . extend ( optionOverrides , px ) ;
166166 }
167- var opts , $scroller , scrollTargetOffset , speed ,
167+ var opts , $scroller , scrollTargetOffset , speed , delta ,
168168 scrollerOffset = 0 ,
169169 offPos = 'offset' ,
170170 scrollDir = 'scrollTop' ,
171171 aniProps = { } ,
172- aniOpts = { } ,
173- scrollprops = [ ] ;
172+ aniOpts = { } ;
174173
175174 if ( typeof options === 'number' ) {
176175 opts = $ . extend ( { link : null } , $ . fn . smoothScroll . defaults , optionOverrides ) ;
@@ -179,13 +178,13 @@ $.smoothScroll = function(options, px) {
179178 opts = $ . extend ( { link : null } , $ . fn . smoothScroll . defaults , options || { } , optionOverrides ) ;
180179 if ( opts . scrollElement ) {
181180 offPos = 'position' ;
182- if ( opts . scrollElement . css ( 'position' ) == 'static' ) {
181+ if ( opts . scrollElement . css ( 'position' ) === 'static' ) {
183182 opts . scrollElement . css ( 'position' , 'relative' ) ;
184183 }
185184 }
186185 }
187186
188- scrollDir = opts . direction == 'left' ? 'scrollLeft' : scrollDir ;
187+ scrollDir = opts . direction === 'left' ? 'scrollLeft' : scrollDir ;
189188
190189 if ( opts . scrollElement ) {
191190 $scroller = opts . scrollElement ;
@@ -211,11 +210,15 @@ $.smoothScroll = function(options, px) {
211210 // automatically calculate the speed of the scroll based on distance / coefficient
212211 if ( speed === 'auto' ) {
213212
214- // if aniProps[scrollDir] == 0 then we'll use scrollTop() value instead
215- speed = aniProps [ scrollDir ] || $scroller . scrollTop ( ) ;
213+ // $scroller.scrollTop() is position before scroll, aniProps[scrollDir] is position after
214+ // When delta is greater, speed will be greater.
215+ delta = aniProps [ scrollDir ] - $scroller . scrollTop ( ) ;
216+ if ( delta < 0 ) {
217+ delta *= - 1 ;
218+ }
216219
217- // divide the speed by the coefficient
218- speed = speed / opts . autoCoefficent ;
220+ // Divide the delta by the coefficient
221+ speed = delta / opts . autoCoefficient ;
219222 }
220223
221224 aniOpts = {
@@ -239,6 +242,7 @@ $.smoothScroll = function(options, px) {
239242
240243$ . smoothScroll . version = version ;
241244$ . smoothScroll . filterPath = function ( string ) {
245+ string = string || '' ;
242246 return string
243247 . replace ( / ^ \/ / , '' )
244248 . replace ( / (?: i n d e x | d e f a u l t ) .[ a - z A - Z ] { 3 , 4 } $ / , '' )
0 commit comments