mirror of
https://github.com/twbs/bootstrap.git
synced 2024-12-10 22:24:19 +01:00
39 lines
898 B
JavaScript
39 lines
898 B
JavaScript
// scroll spy logic
|
|
// ================
|
|
$(function () {
|
|
|
|
var activeTarget,
|
|
position = {},
|
|
$window = $(window),
|
|
nav = $('body > .topbar li a'),
|
|
targets = nav.map(function () {
|
|
return $(this).attr('href');
|
|
}),
|
|
offsets = $.map(targets, function (id) {
|
|
return $(id).offset().top;
|
|
});
|
|
|
|
function setButton(id) {
|
|
nav.parent("li").removeClass('active');
|
|
$(nav[$.inArray(id, targets)]).parent("li").addClass('active');
|
|
}
|
|
|
|
function processScroll(e) {
|
|
var scrollTop = $window.scrollTop() + 10, i;
|
|
for (i = offsets.length; i--;) {
|
|
if (activeTarget != targets[i] && scrollTop >= offsets[i] && (!offsets[i + 1] || scrollTop <= offsets[i + 1])) {
|
|
activeTarget = targets[i];
|
|
setButton(activeTarget);
|
|
}
|
|
}
|
|
}
|
|
|
|
nav.click(function () {
|
|
processScroll();
|
|
});
|
|
|
|
processScroll();
|
|
|
|
$window.scroll(processScroll);
|
|
|
|
}) |