From e96fb28ba264158ff2dee71758647e1261f44f21 Mon Sep 17 00:00:00 2001 From: "g.chanaud" Date: Sat, 30 Apr 2016 18:59:32 +0200 Subject: [PATCH] [Bugfix] Correct anchor offset when using only one of data-top-anchor data-btm-anchor --- js/foundation.sticky.js | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/js/foundation.sticky.js b/js/foundation.sticky.js index cfe356ffc..134253c05 100644 --- a/js/foundation.sticky.js +++ b/js/foundation.sticky.js @@ -66,31 +66,27 @@ class Sticky { * @private */ _parsePoints() { - var top = this.options.topAnchor, - btm = this.options.btmAnchor, + var top = this.options.topAnchor == "" ? 1 : this.options.topAnchor, + btm = this.options.btmAnchor== "" ? document.documentElement.scrollHeight : this.options.btmAnchor, pts = [top, btm], breaks = {}; - if (top && btm) { - - for (var i = 0, len = pts.length; i < len && pts[i]; i++) { - var pt; - if (typeof pts[i] === 'number') { - pt = pts[i]; - } else { - var place = pts[i].split(':'), - anchor = $(`#${place[0]}`); - - pt = anchor.offset().top; - if (place[1] && place[1].toLowerCase() === 'bottom') { - pt += anchor[0].getBoundingClientRect().height; - } + for (var i = 0, len = pts.length; i < len && pts[i]; i++) { + var pt; + if (typeof pts[i] === 'number') { + pt = pts[i]; + } else { + var place = pts[i].split(':'), + anchor = $(`#${place[0]}`); + + pt = anchor.offset().top; + if (place[1] && place[1].toLowerCase() === 'bottom') { + pt += anchor[0].getBoundingClientRect().height; } - breaks[i] = pt; } - } else { - breaks = {0: 1, 1: document.documentElement.scrollHeight}; + breaks[i] = pt; } + this.points = breaks; return; } -- 2.47.2