From 1cfa902e313e848732976ac6e538f3f72c135d90 Mon Sep 17 00:00:00 2001
From: Mike Greiling <mike@pixelcog.com>
Date: Thu, 29 May 2014 02:51:49 -0500
Subject: [PATCH] refactor scrollspy refresh method

Closes #13702 by merging a rebased version of it.
---
 js/scrollspy.js | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/js/scrollspy.js b/js/scrollspy.js
index 94171bb1ba..644c65f947 100644
--- a/js/scrollspy.js
+++ b/js/scrollspy.js
@@ -36,7 +36,13 @@
   }
 
   ScrollSpy.prototype.refresh = function () {
-    var offsetMethod = this.$scrollElement[0] == window ? 'offset' : 'position'
+    var offsetMethod = 'offset'
+    var offsetBase   = 0
+
+    if (!$.isWindow(this.$scrollElement[0])) {
+      offsetMethod = 'position'
+      offsetBase   = this.$scrollElement.scrollTop()
+    }
 
     this.offsets = []
     this.targets = []
@@ -54,7 +60,7 @@
         return ($href
           && $href.length
           && $href.is(':visible')
-          && [[$href[offsetMethod]().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href]]) || null
+          && [[$href[offsetMethod]().top + offsetBase, href]]) || null
       })
       .sort(function (a, b) { return a[0] - b[0] })
       .each(function () {
-- 
GitLab