mirror of
https://github.com/twbs/bootstrap.git
synced 2024-12-02 14:24:19 +01:00
130 lines
3.1 KiB
JavaScript
130 lines
3.1 KiB
JavaScript
$(document).ready(function(){
|
|
|
|
// scroll spy logic
|
|
// ================
|
|
|
|
var activeTarget,
|
|
$window = $(window),
|
|
position = {},
|
|
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);
|
|
|
|
|
|
// Dropdown example for topbar nav
|
|
// ===============================
|
|
|
|
$("body").bind("click", function (e) {
|
|
$('a.menu').parent("li").removeClass("open");
|
|
});
|
|
|
|
$("a.menu").click(function (e) {
|
|
var $li = $(this).parent("li").toggleClass('open');
|
|
return false;
|
|
});
|
|
|
|
|
|
// table sort example
|
|
// ==================
|
|
|
|
$("#sortTableExample").tablesorter( {sortList: [[1,0]]} );
|
|
|
|
|
|
// add on logic
|
|
// ============
|
|
|
|
$('.add-on :checkbox').click(function() {
|
|
if ($(this).attr('checked')) {
|
|
$(this).parents('.add-on').addClass('active');
|
|
} else {
|
|
$(this).parents('.add-on').removeClass('active');
|
|
}
|
|
});
|
|
|
|
|
|
// Disable certain links in docs
|
|
// =============================
|
|
|
|
$('ul.tabs a, ul.pills a, .pagination a, .well .btn, .actions .btn, .alert-message .btn, a.close').click(function(e) {
|
|
e.preventDefault();
|
|
});
|
|
|
|
// Copy code blocks in docs
|
|
$(".copy-code").focus(function() {
|
|
var el = this;
|
|
// push select to event loop for chrome :{o
|
|
setTimeout(function () { $(el).select(); }, 1);
|
|
});
|
|
|
|
|
|
// POSITION TWIPSIES
|
|
// =================
|
|
|
|
$('.twipsies.well a').each(function () {
|
|
var type = this.title
|
|
, $anchor = $(this)
|
|
, $twipsy = $('.twipsy.' + type)
|
|
|
|
, twipsy = {
|
|
width: $twipsy.width() + 10
|
|
, height: $twipsy.height() + 10
|
|
}
|
|
|
|
, anchor = {
|
|
position: $anchor.position()
|
|
, width: $anchor.width()
|
|
, height: $anchor.height()
|
|
}
|
|
|
|
, offset = {
|
|
above: {
|
|
top: anchor.position.top - twipsy.height
|
|
, left: anchor.position.left + (anchor.width/2) - (twipsy.width/2)
|
|
}
|
|
, below: {
|
|
top: anchor.position.top + anchor.height
|
|
, left: anchor.position.left + (anchor.width/2) - (twipsy.width/2)
|
|
}
|
|
, left: {
|
|
top: anchor.position.top + (anchor.height/2) - (twipsy.height/2)
|
|
, left: anchor.position.left - twipsy.width - 5
|
|
}
|
|
, right: {
|
|
top: anchor.position.top + (anchor.height/2) - (twipsy.height/2)
|
|
, left: anchor.position.left + anchor.width + 5
|
|
}
|
|
}
|
|
|
|
$twipsy.css(offset[type])
|
|
|
|
});
|
|
|
|
}); |