Skip to content

Commit 8cc29da

Browse files
committed
Build and bump to 2.1.1
1 parent 0ded196 commit 8cc29da

6 files changed

+49
-27
lines changed

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"name": "jquery-smooth-scroll",
44
"main": "jquery.smooth-scroll.js",
55
"homepage": "https://github.com/kswedberg/jquery-smooth-scroll",
6-
"version": "2.0.1",
6+
"version": "2.1.1",
77
"repository": {
88
"type": "git",
99
"url": "https://github.com/kswedberg/jquery-smooth-scroll"

index.html

Lines changed: 8 additions & 8 deletions
Large diffs are not rendered by default.

jquery.smooth-scroll.js

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*!
2-
* jQuery Smooth Scroll - v2.0.1 - 2016-09-07
2+
* jQuery Smooth Scroll - v2.1.1 - 2017-01-01
33
* https://github.com/kswedberg/jquery-smooth-scroll
4-
* Copyright (c) 2016 Karl Swedberg
4+
* Copyright (c) 2017 Karl Swedberg
55
* Licensed MIT
66
*/
77

@@ -18,7 +18,7 @@
1818
}
1919
}(function($) {
2020

21-
var version = '2.0.1';
21+
var version = '2.1.1';
2222
var optionOverrides = {};
2323
var defaults = {
2424
exclude: [],
@@ -124,6 +124,7 @@
124124
return scrollable;
125125
};
126126

127+
var rRelative = /^([\-\+]=)(\d+)/;
127128
$.fn.extend({
128129
scrollable: function(dir) {
129130
var scrl = getScrollable.call(this, {dir: dir});
@@ -222,20 +223,37 @@
222223
}
223224
});
224225

226+
var getExplicitOffset = function(val) {
227+
var explicit = {relative: ''};
228+
var parts = typeof val === 'string' && rRelative.exec(val);
229+
230+
if (typeof val === 'number') {
231+
explicit.px = val;
232+
} else if (parts) {
233+
explicit.relative = parts[1];
234+
explicit.px = parseFloat(parts[2]) || 0;
235+
}
236+
237+
return explicit;
238+
};
239+
225240
$.smoothScroll = function(options, px) {
226241
if (options === 'options' && typeof px === 'object') {
227242
return $.extend(optionOverrides, px);
228243
}
229-
var opts, $scroller, scrollTargetOffset, speed, delta;
244+
var opts, $scroller, speed, delta;
245+
var explicitOffset = getExplicitOffset(options);
246+
var scrollTargetOffset = {};
230247
var scrollerOffset = 0;
231248
var offPos = 'offset';
232249
var scrollDir = 'scrollTop';
233250
var aniProps = {};
234251
var aniOpts = {};
235252

236-
if (typeof options === 'number') {
253+
console.log(explicitOffset);
254+
255+
if (explicitOffset.px) {
237256
opts = $.extend({link: null}, $.fn.smoothScroll.defaults, optionOverrides);
238-
scrollTargetOffset = options;
239257
} else {
240258
opts = $.extend({link: null}, $.fn.smoothScroll.defaults, options || {}, optionOverrides);
241259

@@ -246,14 +264,18 @@
246264
opts.scrollElement.css('position', 'relative');
247265
}
248266
}
267+
268+
if (px) {
269+
explicitOffset = getExplicitOffset(px);
270+
}
249271
}
250272

251273
scrollDir = opts.direction === 'left' ? 'scrollLeft' : scrollDir;
252274

253275
if (opts.scrollElement) {
254276
$scroller = opts.scrollElement;
255277

256-
if (!(/^(?:HTML|BODY)$/).test($scroller[0].nodeName)) {
278+
if (!explicitOffset.px && !(/^(?:HTML|BODY)$/).test($scroller[0].nodeName)) {
257279
scrollerOffset = $scroller[scrollDir]();
258280
}
259281
} else {
@@ -263,13 +285,13 @@
263285
// beforeScroll callback function must fire before calculating offset
264286
opts.beforeScroll.call($scroller, opts);
265287

266-
scrollTargetOffset = (typeof options === 'number') ? options :
267-
px ||
268-
($(opts.scrollTarget)[offPos]() &&
269-
$(opts.scrollTarget)[offPos]()[opts.direction]) ||
270-
0;
288+
scrollTargetOffset = explicitOffset.px ? explicitOffset : {
289+
relative: '',
290+
px: ($(opts.scrollTarget)[offPos]() && $(opts.scrollTarget)[offPos]()[opts.direction]) || 0
291+
};
292+
293+
aniProps[scrollDir] = scrollTargetOffset.relative + (scrollTargetOffset.px + scrollerOffset + opts.offset);
271294

272-
aniProps[scrollDir] = scrollTargetOffset + scrollerOffset + opts.offset;
273295
speed = opts.speed;
274296

275297
// automatically calculate the speed of the scroll based on distance / coefficient

jquery.smooth-scroll.min.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "jquery-smooth-scroll",
33
"title": "jQuery Smooth Scroll",
4-
"version": "2.1.0",
4+
"version": "2.1.1",
55
"scripts": {},
66
"main": "jquery.smooth-scroll.js",
77
"author": {

src/jquery.smooth-scroll.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
(function($) {
2-
var version = '2.0.1';
2+
var version = '2.1.1';
33
var optionOverrides = {};
44
var defaults = {
55
exclude: [],

0 commit comments

Comments
 (0)