1
0
mirror of https://github.com/twbs/bootstrap.git synced 2025-09-29 14:59:16 +02:00

some more js love - update the docs with tabs/pills plugin

This commit is contained in:
Jacob Thornton
2011-09-08 20:21:03 -07:00
parent 346122a0c7
commit 5960711d0f
11 changed files with 143 additions and 120 deletions

View File

@@ -0,0 +1,39 @@
// 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);
})

View File

@@ -1,96 +1,46 @@
$(document).ready(function(){
// Google code prettify
// ====================
prettyPrint();
// scroll spy logic
// ================
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);
// Dropdown example for topbar nav
// ===============================
$("body").bind("click", function (e) {
$('.dropdown-toggle, .menu').parent("li").removeClass("open");
});
$(".dropdown-toggle, .menu").click(function (e) {
var $li = $(this).parent("li").toggleClass('open');
return false;
});
$(".topbar").dropdown() // catch any dropdowns on the page
// table sort example
// ==================
$("#sortTableExample").tablesorter( {sortList: [[1,0]]} );
$("#sortTableExample").tablesorter( { sortList: [[ 1, 0 ]] } )
// add on logic
// ============
$('.add-on :checkbox').click(function() {
$('.add-on :checkbox').click(function () {
if ($(this).attr('checked')) {
$(this).parents('.add-on').addClass('active');
$(this).parents('.add-on').addClass('active')
} else {
$(this).parents('.add-on').removeClass('active');
$(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();
});
$('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() {
$(".copy-code").focus(function () {
var el = this;
// push select to event loop for chrome :{o
setTimeout(function () { $(el).select(); }, 1);
});
// POSITION TWIPSIES
// =================
// POSITION STATIC TWIPSIES
// ========================
$('.twipsies.well a').each(function () {
var type = this.title
@@ -128,7 +78,6 @@ $(document).ready(function(){
}
$twipsy.css(offset[type])
});
});

View File

@@ -3,8 +3,10 @@
/* DROPDOWN PLUGIN DEFINITION
* ========================== */
var selector = 'a.menu, .dropdown-toggle'
function clearMenus() {
$('a.menu').parent('li').removeClass('open')
$(selector).parent('li').removeClass('open')
}
$(function () {
@@ -13,7 +15,7 @@
$.fn.dropdown = function ( options ) {
return this.each(function () {
$(this).delegate('a.menu', 'click', function (e) {
$(this).delegate(selector, 'click', function (e) {
clearMenus()
$(this).parent('li').toggleClass('open')
return false

0
docs/assets/js/bootstrap-scrollspy.js vendored Normal file
View File

View File

@@ -2,33 +2,36 @@
function activate ( element, container ) {
container.find('.active').removeClass('active')
element.addClass('active')
element.addClass('active')
}
function tab( e ) {
debugger
var $this = $(this)
, href = $this.attr('href')
var $this = $(this)
, href = $this.attr('href')
, $ul = $(e.liveFired)
, $controlled
if (/^#/.test(href)) {
e.preventDefault()
if (/^#/.test(href)) {
e.preventDefault()
if ($this.hasClass('active')) {
return
}
activate($this, $ul)
activate($(href), $content)
}
$controlled = $('#' + $ul.attr('aria-controls'))
activate($this.parent('li'), $ul)
activate($(href, $controlled), $controlled)
}
}
/* TABS PLUGIN DEFINITION
* ====================== */
/* TABS/PILLS PLUGIN DEFINITION
* ============================ */
$.fn.tabs = function ( content ) {
$.fn.tabs = $.fn.pills = function () {
return this.each(function () {
$(this).delegate('> li > a', 'click', tab)
$(this).delegate('.tabs > li > a, .pills > li > a', 'click', tab)
})
}