Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Thornton <jacobthornton@gmail.com>2012-03-22 10:45:58 +0400
committerJacob Thornton <jacobthornton@gmail.com>2012-03-22 10:45:58 +0400
commit706ee46b73b58059230b24589160da784778aad2 (patch)
tree02ed360279f52c9891fdcad4ec50c5167188d22c /js/bootstrap-scrollspy.js
parent94b24aaa473755093677cb4eb80faf3daee53357 (diff)
sort scrollspy to prevent flicker for unordered nav
Diffstat (limited to 'js/bootstrap-scrollspy.js')
-rw-r--r--js/bootstrap-scrollspy.js21
1 files changed, 15 insertions, 6 deletions
diff --git a/js/bootstrap-scrollspy.js b/js/bootstrap-scrollspy.js
index e0c74539e1..5008b0fe97 100644
--- a/js/bootstrap-scrollspy.js
+++ b/js/bootstrap-scrollspy.js
@@ -43,16 +43,25 @@
constructor: ScrollSpy
, refresh: function () {
- this.targets = this.$body
+ var self = this
+ , $targets
+
+ this.offsets = []
+ this.targets = []
+
+ $targets = this.$body
.find(this.selector)
.map(function () {
var href = $(this).attr('href')
- return /^#\w/.test(href) && $(href).length ? href : null
+ return /^#\w/.test(href)
+ && $(href).length
+ && [[ $(href).position().top, href ]]
+ })
+ .sort(function (a, b) { return a[0] - b[0] })
+ .each(function () {
+ self.offsets.push(this[0])
+ self.targets.push(this[1])
})
-
- this.offsets = $.map(this.targets, function (id) {
- return $(id).position().top
- })
}
, process: function () {