Commit c26eb016 authored by Jacob Thornton's avatar Jacob Thornton

starting up bootstrap-js...

parent df8b6544
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Designed and built with all the love in the world @twitter by @mdo and @fat. * Designed and built with all the love in the world @twitter by @mdo and @fat.
* Date: Fri Aug 26 19:31:44 PDT 2011 * Date: Fri Aug 26 22:42:50 PDT 2011
*/ */
/* Reset.less /* Reset.less
* Props to Eric Meyer (meyerweb.com) for his CSS reset file. We're using an adapted version here that cuts out some of the reset HTML elements we will never need here (i.e., dfn, samp, etc). * Props to Eric Meyer (meyerweb.com) for his CSS reset file. We're using an adapted version here that cuts out some of the reset HTML elements we will never need here (i.e., dfn, samp, etc).
...@@ -481,6 +481,8 @@ a:hover { ...@@ -481,6 +481,8 @@ a:hover {
.btn { .btn {
-webkit-transition: 0.1s linear all; -webkit-transition: 0.1s linear all;
-moz-transition: 0.1s linear all; -moz-transition: 0.1s linear all;
-ms-transition: 0.1s linear all;
-o-transition: 0.1s linear all;
transition: 0.1s linear all; transition: 0.1s linear all;
} }
.btn.primary { .btn.primary {
...@@ -811,6 +813,8 @@ select, ...@@ -811,6 +813,8 @@ select,
textarea { textarea {
-webkit-transition: border linear 0.2s, box-shadow linear 0.2s; -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
-moz-transition: border linear 0.2s, box-shadow linear 0.2s; -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
-ms-transition: border linear 0.2s, box-shadow linear 0.2s;
-o-transition: border linear 0.2s, box-shadow linear 0.2s;
transition: border linear 0.2s, box-shadow linear 0.2s; transition: border linear 0.2s, box-shadow linear 0.2s;
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1); -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
-moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1); -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
...@@ -1272,6 +1276,8 @@ table .headerSortUp.purple, table .headerSortDown.purple { ...@@ -1272,6 +1276,8 @@ table .headerSortUp.purple, table .headerSortDown.purple {
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.25); box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.25);
-webkit-transition: none; -webkit-transition: none;
-moz-transition: none; -moz-transition: none;
-ms-transition: none;
-o-transition: none;
transition: none; transition: none;
} }
.topbar form input:-moz-placeholder { .topbar form input:-moz-placeholder {
...@@ -1499,6 +1505,8 @@ footer { ...@@ -1499,6 +1505,8 @@ footer {
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
-webkit-transition: 0.1s linear all; -webkit-transition: 0.1s linear all;
-moz-transition: 0.1s linear all; -moz-transition: 0.1s linear all;
-ms-transition: 0.1s linear all;
-o-transition: 0.1s linear all;
transition: 0.1s linear all; transition: 0.1s linear all;
} }
.btn:hover { .btn:hover {
...@@ -1773,6 +1781,17 @@ button.btn::-moz-focus-inner, input[type=submit].btn::-moz-focus-inner { ...@@ -1773,6 +1781,17 @@ button.btn::-moz-focus-inner, input[type=submit].btn::-moz-focus-inner {
-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
} }
.modal-backdrop, .modal {
-webkit-transition: opacity 0.15s linear;
-moz-transition: opacity 0.15s linear;
-ms-transition: opacity 0.15s linear;
-o-transition: opacity 0.15s linear;
transition: opacity 0.15s linear;
opacity: 0;
}
.modal-backdrop.open, .modal.open {
opacity: 1;
}
.modal-backdrop { .modal-backdrop {
background-color: rgba(0, 0, 0, 0.5); background-color: rgba(0, 0, 0, 0.5);
position: fixed; position: fixed;
......
This diff is collapsed.
(function( $ ){
/* CSS TRANSITION SUPPORT (https://gist.github.com/373874)
* ======================================================= */
$.support.transition = (function(){
var thisBody = document.body || document.documentElement
, thisStyle = thisBody.style
, support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined;
return support;
})();
/* SHARED VARS
* =========== */
var $window = $(window)
, transitionEnd
// set CSS transition event type
if ($.support.transition) {
transitionEnd = "TransitionEnd"
if ($.browser.webkit) {
transitionEnd = "webkitTransitionEnd"
} else if ($.browser.mozilla) {
transitionEnd = "transitionend"
} else if ($.browser.opera) {
transitionEnd = "oTransitionEnd"
}
}
/* MODAL PUBLIC CLASS DEFINITION
* ============================= */
var Modal = function (options) {
this.settings = {
backdrop: false
, closeOnEscape: false
, content: false
}
if ( typeof options == 'string' ) {
this.settings.content = options
} else if ( options ) {
$.extend( this.settings, options )
}
return this
}
Modal.prototype = {
toggle: function () {
return this[!this.isOpen ? 'open' : 'close']()
}
, open: function () {
var that = this
this.isOpen = true
_private.onEscape.call(this)
_private.backdrop.call(this)
this.$element = $(this.settings.content)
.delegate('.close', 'click', function (e) { e.preventDefault(); that.close() })
.appendTo(document.body)
setTimeout(function () {
that.$element.addClass('open')
that.$backdrop && that.$backdrop.addClass('open')
}, 1)
return this
}
, close: function () {
var that = this
this.isOpen = false
_private.onEscape.call(this)
_private.backdrop.call(this)
this.$element.removeClass('open')
function removeElement () {
that.$element.remove()
that.$element = null
}
$.support.transition ?
this.$element.bind(transitionEnd, removeElement) :
removeElement()
return this
}
}
/* MODAL PRIVATE METHODS
* ===================== */
var _private = {
backdrop: function () {
var that = this
if (this.isOpen && this.settings.backdrop) {
this.$backdrop = $('<div class="modal-backdrop" />')
.click(function () { that.close() })
.appendTo(document.body)
} else if (!this.isOpen && this.$backdrop){
this.$backdrop.removeClass('open')
function removeElement() {
that.$backdrop.remove()
that.$backdrop = null
}
$.support.transition ?
this.$backdrop.bind(transitionEnd, removeElement) :
removeElement()
}
}
, onEscape: function () {
var that = this
if (this.isOpen && this.settings.closeOnEscape) {
$window.bind('keyup.modal.escape', function (e) {
if ( e.which == 27 ) {
that.close()
}
})
} else if (!this.isOpen) {
$window.unbind('keyup.modal.escape')
}
}
}
/* MODAL PLUGIN DEFINITION
* ======================= */
$.modal = function (options) {
return new Modal(options)
}
$.fn.modal = function (options) {
options = options || {}
options.content = this
return new Modal(options)
}
})( jQuery || ender )
\ No newline at end of file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Bootstrap, from Twitter</title>
<meta name="description" content="">
<meta name="author" content="">
<!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Le javascript -->
<script src="http://code.jquery.com/jquery-1.5.2.min.js"></script>
<script src="assets/js/bootstrap-modals.js"></script>
<!-- <script src="assets/js/bootstrap-alerts.js"></script> -->
<!-- <script src="assets/js/bootstrap-tips.js"></script> -->
<!-- <script src="assets/js/bootstrap-popovers.js"></script> -->
<!-- Le styles -->
<link href="../bootstrap-1.1.1.css" rel="stylesheet">
<!-- Le fav and touch icons -->
<link rel="shortcut icon" href="images/favicon.ico">
<link rel="apple-touch-icon" href="images/apple-touch-icon.png">
<link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
</head>
<body style="padding-top: 60px">
<!-- Topbar
================================================== -->
<div class="topbar">
<div class="fill">
<div class="container">
<h3><a href="#">Bootstrap JS</a></h3>
<ul>
<li class="active"><a href="#modal">Getting Started</a></li>
<li><a href="#modal">Modals</a></li>
</ul>
</div>
</div>
</div>
<div class="container">
<!-- Using Javascript w/ Bootstrap
================================================== -->
<section id="javascript">
<div class="page-header">
<h1>Using Javascript with Less <small>A love story.</small></h1>
</div>
<div class="row">
<div class="span4 columns">
<p>This page illustrates how to integrate javascript with the Bootstrap library. Below we go over the basics and provide you with some awesome plugins to get you started!</p>
</div>
<div class="span12 columns">
<h2>What is all this?</h2>
<p>With this example page, we've set out to make your interactive work with Bootstrap even more simple, offering several lightweight plugins for things like modals, tooltips, and other dynamic components. These plugins have been coded up to work with <a href="http://jquery.com/" target="_blank">jQuery</a> and <a href="http://ender.no.de" target="_blank">Ender</a>, but we encourage you to extend and modify them to fit your development needs!</p>
<h2>Do I need these?</h2>
<p>The short answer is <strong>NO!</strong> These plugins were provided to help you understand how to integrate bootstrap with javascript and to give you a quick lightweight option for dropping something in and getting the basic functionality.
</p>
</div>
</div>
</section>
<!-- Modal
================================================== -->
<section id="javascript">
<div class="page-header">
<h1>Modals <small>bootstrap-modals.js</small></h1>
</div>
<div class="row">
<div class="span4 columns">
<p>Our Modal plugin is <strong>super</strong> slim! We took special care to only include the bare functionality that we require at twitter, however we look forward to seeing all the cool stuff you do with it!</p>
</div>
<div class="span12 columns">
<h2>Using bootstrap-modal</h2>
<pre class="prettyprint linenums">$('#modal-content').modal();</pre>
<h3>Options</h3>
<ul>
<li><strong>backdrop</strong> (<code>boolean</code>) - if true, it will include a modal-backdrop element.</li>
<li><strong>closeOnEscape</strong> (<code>boolean</code>) - if true, it will close the modal when escape key is pressed.</li>
<li><strong>content</strong> (<code>string</code>) - alternative way of supplying modal class with HTML content.</li>
</ul>
<h3>Methods</h3>
<h4>$.modal</h4>
<p>Returns an instance of the modal class. It accepts either a <code>string</code> or an options <code>object</code>.</p>
<pre class="prettyprint linenums">
// Accepts HTML string
$.modal(modalHTML)
// Accepts Options
$.modal({
backdrop: true
, content: modalHTML
})</pre>
<h4>$().modal</h4>
<p>Returns an instance of the modal class. Accepts an optional options <code>object</code>.</p>
<pre class="prettyprint linenums">
$('#modal-content').modal({
closeOnEscape: true
});</pre>
<h4>.toggle</h4>
<p>Returns an instance of the modal class. Toggle the modal open state.</p>
<pre class="prettyprint linenums">$('#modal-content').modal().toggle()</pre>
<h4>.open</h4>
<p>Returns an instance of the modal class. Opens the modal.</p>
<pre class="prettyprint linenums">$('#modal-content').modal().open()</pre>
<h4>.close</h4>
<p>Returns an instance of the modal class. Closes the modal.</p>
<pre class="prettyprint linenums">$('#modal-content').modal().close()</pre>
<h3>Demo</h3>
<!-- sample modal content -->
<div id="modal-from-dom" class="modal">
<div class="modal-header">
<h3>Modal Heading</h3>
<a href="#" class="close">&times;</a>
</div>
<div class="modal-body">
<p>One fine body…</p>
</div>
<div class="modal-footer">
<a href="#" class="btn primary">Primary</a>
<a href="#" class="btn secondary">Secondary</a>
</div>
</div>
<button id="modal-basic" class="btn">Basic Modal</button>
<button id="modal-options" class="btn">Modal Options</button>
<button id="modal-from-element" class="btn">Modal From Element</button>
<script>
$(function () {
var modalHTML =
'<div class="modal">'
+ '<div class="modal-header">'
+ '<h3>Modal Heading</h3>'
+ '<a href="#" class="close">&times;</a>'
+ '</div>'
+ '<div class="modal-body">'
+ '<p>One fine body…</p>'
+ '</div>'
+ '<div class="modal-footer">'
+ '<a href="#" class="btn primary">Primary</a>'
+ '<a href="#" class="btn secondary">Secondary</a>'
+ '</div>'
+ '</div>'
var simpleModal = $.modal(modalHTML)
, optionModal = $.modal({
backdrop: true
, content: modalHTML
, closeOnEscape: true
})
, domModal = $("#modal-from-dom").modal({
backdrop: true
, content: modalHTML
, closeOnEscape: true
})
$('#modal-basic').click(function () {
simpleModal.toggle()
});
$('#modal-options').click(function () {
optionModal.toggle();
});
$('#modal-from-element').click(function () {
domModal.toggle();
})
})
</script>
</div>
</div>
</section>
</div>
</body>
</html>
\ No newline at end of file
...@@ -579,6 +579,15 @@ input[type=submit].btn { ...@@ -579,6 +579,15 @@ input[type=submit].btn {
// MODALS // MODALS
// ------ // ------
.modal-backdrop,
.modal {
.transition(opacity .15s linear);
opacity: 0;
&.open {
opacity: 1;
}
}
.modal-backdrop { .modal-backdrop {
background-color: rgba(0,0,0,.5); background-color: rgba(0,0,0,.5);
position: fixed; position: fixed;
......
...@@ -150,6 +150,8 @@ ...@@ -150,6 +150,8 @@
.transition(@transition) { .transition(@transition) {
-webkit-transition: @transition; -webkit-transition: @transition;
-moz-transition: @transition; -moz-transition: @transition;
-ms-transition: @transition;
-o-transition: @transition;
transition: @transition; transition: @transition;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment