mirror of
https://github.com/twbs/bootstrap.git
synced 2024-11-30 12:24:19 +01:00
170 lines
4.2 KiB
JavaScript
170 lines
4.2 KiB
JavaScript
// NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT
|
|
// IT'S ALL JUST JUNK FOR OUR DOCS!
|
|
// ++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
!function ($) {
|
|
|
|
$(function(){
|
|
|
|
var $window = $(window)
|
|
|
|
var navHeight = $('.navbar').outerHeight(true) + 10
|
|
|
|
$(document.body).scrollspy({
|
|
target: '.bs-sidebar',
|
|
offset: navHeight
|
|
})
|
|
|
|
$('[href^=#]').click(function (e) {
|
|
e.preventDefault()
|
|
})
|
|
|
|
$(document.body).on('click', '.bs-sidenav [href^=#]', function (e) {
|
|
var $target = $(this.getAttribute('href'))
|
|
|
|
e.preventDefault() // prevent browser scroll
|
|
|
|
document.body.scrollTop =
|
|
$target.offset().top -
|
|
navHeight + 5 // offset scroll by nav
|
|
})
|
|
|
|
// back to top
|
|
setTimeout(function () {
|
|
var $sideBar = $('.bs-sidebar')
|
|
|
|
$sideBar.affix({
|
|
offset: {
|
|
top: function () {
|
|
var offsetTop = $sideBar.offset().top
|
|
var sideBarMargin = parseInt($sideBar.children(0).css('margin-top'), 10)
|
|
var navOuterHeight = $('.bs-docs-nav').height()
|
|
|
|
return (this.top = offsetTop - navOuterHeight - sideBarMargin)
|
|
}
|
|
, bottom: function () {
|
|
return (this.bottom = $('.bs-footer').outerHeight(true))
|
|
}
|
|
}
|
|
})
|
|
}, 100)
|
|
|
|
setTimeout(function () {
|
|
$('.bs-top').affix()
|
|
}, 100)
|
|
|
|
// tooltip demo
|
|
$('.tooltip-demo').tooltip({
|
|
selector: "[data-toggle=tooltip]"
|
|
})
|
|
|
|
$('.tooltip-test').tooltip()
|
|
$('.popover-test').popover()
|
|
|
|
$('.bs-docs-navbar').tooltip({
|
|
selector: "a[data-toggle=tooltip]",
|
|
container: ".bs-docs-navbar .nav"
|
|
})
|
|
|
|
// popover demo
|
|
$("[data-toggle=popover]")
|
|
.popover()
|
|
|
|
// button state demo
|
|
$('#fat-btn')
|
|
.click(function () {
|
|
var btn = $(this)
|
|
btn.button('loading')
|
|
setTimeout(function () {
|
|
btn.button('reset')
|
|
}, 3000)
|
|
})
|
|
|
|
// carousel demo
|
|
$('.bs-docs-carousel-example').carousel()
|
|
|
|
// javascript build logic
|
|
var inputsComponent = $("#less input")
|
|
, inputsPlugin = $("#plugins input")
|
|
, inputsVariables = $("#less-variables input")
|
|
|
|
// toggle all plugin checkboxes
|
|
$('#less .toggle').on('click', function (e) {
|
|
e.preventDefault()
|
|
inputsComponent.prop('checked', !inputsComponent.is(':checked'))
|
|
})
|
|
|
|
$('#plugins .toggle').on('click', function (e) {
|
|
e.preventDefault()
|
|
inputsPlugin.prop('checked', !inputsPlugin.is(':checked'))
|
|
})
|
|
|
|
$('#less-variables .toggle').on('click', function (e) {
|
|
e.preventDefault()
|
|
inputsVariables.val('')
|
|
})
|
|
|
|
// request built javascript
|
|
$('.bs-customize-download .btn').on('click', function (e) {
|
|
e.preventDefault()
|
|
|
|
var css = $("#less input:checked")
|
|
.map(function () { return this.value })
|
|
.toArray()
|
|
, js = $("#plugins input:checked")
|
|
.map(function () { return this.value })
|
|
.toArray()
|
|
, vars = {}
|
|
|
|
$("#less-variables input")
|
|
.each(function () {
|
|
$(this).val() && (vars[ $(this).prev().text() ] = $(this).val())
|
|
})
|
|
|
|
$.ajax({
|
|
type: 'POST'
|
|
, url: /localhost/.test(window.location) ? 'http://localhost:9001' : 'http://bootstrap.herokuapp.com'
|
|
, dataType: 'jsonpi'
|
|
, params: {
|
|
js: js
|
|
, css: css
|
|
, vars: vars
|
|
}
|
|
})
|
|
})
|
|
})
|
|
|
|
// Modified from the original jsonpi https://github.com/benvinegar/jquery-jsonpi
|
|
$.ajaxTransport('jsonpi', function(opts, originalOptions, jqXHR) {
|
|
var url = opts.url;
|
|
|
|
return {
|
|
send: function(_, completeCallback) {
|
|
var name = 'jQuery_iframe_' + jQuery.now()
|
|
, iframe, form
|
|
|
|
iframe = $('<iframe>')
|
|
.attr('name', name)
|
|
.appendTo('head')
|
|
|
|
form = $('<form>')
|
|
.attr('method', opts.type) // GET or POST
|
|
.attr('action', url)
|
|
.attr('target', name)
|
|
|
|
$.each(opts.params, function(k, v) {
|
|
|
|
$('<input>')
|
|
.attr('type', 'hidden')
|
|
.attr('name', k)
|
|
.attr('value', typeof v == 'string' ? v : JSON.stringify(v))
|
|
.appendTo(form)
|
|
})
|
|
|
|
form.appendTo('body').submit()
|
|
}
|
|
}
|
|
})
|
|
|
|
}(window.jQuery)
|