Skip to content

Commit 205a91a

Browse files
committed
v15.1.3
Fixes cferdinandi#454. When speed is `0`, Nan/Infinity value was breaking calculations. This forces the number to 0 in those situations.
1 parent 1b07220 commit 205a91a

15 files changed

+28
-1391
lines changed

dist/smooth-scroll.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*!
2-
* smooth-scroll v15.1.2
2+
* smooth-scroll v15.1.3
33
* Animate scrolling to anchor links
44
* (c) 2018 Chris Ferdinandi
55
* MIT License
@@ -271,7 +271,7 @@
271271
var speed = settings.speedAsDuration ? settings.speed : Math.abs(distance / 1000 * settings.speed);
272272
if (settings.durationMax && speed > settings.durationMax) return settings.durationMax;
273273
if (settings.durationMin && speed < settings.durationMin) return settings.durationMin;
274-
return speed;
274+
return parseInt(speed, 10);
275275
};
276276

277277
var setHistory = function (options) {
@@ -404,6 +404,9 @@
404404
*/
405405
smoothScroll.animateScroll = function (anchor, toggle, options) {
406406

407+
// Cancel any in progress scrolls
408+
smoothScroll.cancelScroll();
409+
407410
// Local settings
408411
var _settings = extend(settings || defaults, options || {}); // Merge user options with defaults
409412

@@ -462,7 +465,7 @@
462465
var loopAnimateScroll = function (timestamp) {
463466
if (!start) { start = timestamp; }
464467
timeLapsed += timestamp - start;
465-
percentage = (timeLapsed / parseInt(speed, 10));
468+
percentage = speed === 0 ? 0 : (timeLapsed / speed);
466469
percentage = (percentage > 1) ? 1 : percentage;
467470
position = startLocation + (distance * easingPattern(_settings, percentage));
468471
window.scrollTo(0, Math.floor(position));

dist/smooth-scroll.min.js

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

dist/smooth-scroll.polyfills.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*!
2-
* smooth-scroll v15.1.2
2+
* smooth-scroll v15.1.3
33
* Animate scrolling to anchor links
44
* (c) 2018 Chris Ferdinandi
55
* MIT License
@@ -341,7 +341,7 @@ if (window.Element && !Element.prototype.closest) {
341341
var speed = settings.speedAsDuration ? settings.speed : Math.abs(distance / 1000 * settings.speed);
342342
if (settings.durationMax && speed > settings.durationMax) return settings.durationMax;
343343
if (settings.durationMin && speed < settings.durationMin) return settings.durationMin;
344-
return speed;
344+
return parseInt(speed, 10);
345345
};
346346

347347
var setHistory = function (options) {
@@ -474,6 +474,9 @@ if (window.Element && !Element.prototype.closest) {
474474
*/
475475
smoothScroll.animateScroll = function (anchor, toggle, options) {
476476

477+
// Cancel any in progress scrolls
478+
smoothScroll.cancelScroll();
479+
477480
// Local settings
478481
var _settings = extend(settings || defaults, options || {}); // Merge user options with defaults
479482

@@ -532,7 +535,7 @@ if (window.Element && !Element.prototype.closest) {
532535
var loopAnimateScroll = function (timestamp) {
533536
if (!start) { start = timestamp; }
534537
timeLapsed += timestamp - start;
535-
percentage = (timeLapsed / parseInt(speed, 10));
538+
percentage = speed === 0 ? 0 : (timeLapsed / speed);
536539
percentage = (percentage > 1) ? 1 : percentage;
537540
position = startLocation + (distance * easingPattern(_settings, percentage));
538541
window.scrollTo(0, Math.floor(position));

0 commit comments

Comments
 (0)