diff --git a/docs/_data/nav.yml b/docs/_data/nav.yml index 2bd0a73474c2d3827b81b108449a54e587fa7c5d..674b8f0d8fd82913cf5dad3f08dc5def0e90e9ff 100644 --- a/docs/_data/nav.yml +++ b/docs/_data/nav.yml @@ -122,7 +122,6 @@ - title: Buttons - title: Collapse - title: Carousel - - title: Affix - title: Examples pages: diff --git a/docs/assets/css/src/docs.css b/docs/assets/css/src/docs.css index b4eed38178b7f18c9fc8c79e3593350bcfdaf8c9..346726ebd0b80eddab591141aacf39ec30a054b5 100644 --- a/docs/assets/css/src/docs.css +++ b/docs/assets/css/src/docs.css @@ -528,14 +528,10 @@ body { /* * Side navigation * - * Scrollspy and affixed enhanced navigation to highlight sections and secondary + * Scrollspy and enhanced navigation to highlight sections and secondary * sections of docs content. */ -/* By default it's not affixed in mobile views, so undo that */ -.bs-docs-sidebar.affix { - position: static; -} @media (min-width: 768px) { .bs-docs-sidebar { padding-left: 20px; @@ -618,35 +614,11 @@ body { } } -/* Show and affix the side nav when space allows it */ +/* Show the side nav when space allows it */ @media (min-width: 992px) { .bs-docs-sidebar .nav > .active > ul { display: block; } - /* Widen the fixed sidebar */ - .bs-docs-sidebar.affix, - .bs-docs-sidebar.affix-bottom { - width: 213px; - } - .bs-docs-sidebar.affix { - position: fixed; /* Undo the static from mobile first approach */ - top: 20px; - } - .bs-docs-sidebar.affix-bottom { - position: absolute; /* Undo the static from mobile first approach */ - } - .bs-docs-sidebar.affix-bottom .bs-docs-sidenav, - .bs-docs-sidebar.affix .bs-docs-sidenav { - margin-top: 0; - margin-bottom: 0; - } -} -@media (min-width: 1200px) { - /* Widen the fixed sidebar again */ - .bs-docs-sidebar.affix-bottom, - .bs-docs-sidebar.affix { - width: 263px; - } } diff --git a/docs/javascript/affix.md b/docs/javascript/affix.md deleted file mode 100644 index 2d53c7216926307b41dee1bf7b3f91b40785ef2a..0000000000000000000000000000000000000000 --- a/docs/javascript/affix.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -layout: page -title: Affix ---- - -## Example - -The subnavigation on the right is a live demo of the affix plugin. - -## Usage - -Use the affix plugin via data attributes or manually with your own JavaScript. **In both situations, you must provide CSS for the positioning and width of your affixed content.** - -### Position via CSS - -The affix plugin toggles between three classes, each representing a particular state: `.affix`, `.affix-top`, and `.affix-bottom`. You must provide the styles for these classes yourself (independent of this plugin) to handle the actual positions. - -Here's how the affix plugin works: - -- Scrolling past the element you want affixed should trigger the actual affixing. This is where `.affix` replaces `.affix-top` and sets `position: fixed;` (provided by Bootstrap's CSS). -- If a bottom offset is defined, scrolling past it should replace `.affix` with `.affix-bottom`. Since offsets are optional, setting one requires you to set the appropriate CSS. In this case, add `position: absolute;` when necessary. The plugin uses the data attribute or JavaScript option to determine where to position the element from there. - -Follow the above steps to set your CSS for either of the usage options below. - -### Via data attributes - -To easily add affix behavior to any element, just add `data-spy="affix"` to the element you want to spy on. Use offsets to define when to toggle the pinning of an element. - -{% highlight html %} -<div data-spy="affix" data-offset-top="60" data-offset-bottom="200"> - ... -</div> -{% endhighlight %} - -### Via JavaScript - -Call the affix plugin via JavaScript: - -{% highlight js %} -$('#myAffix').affix({ - offset: { - top: 100, - bottom: function () { - return (this.bottom = $('.footer').outerHeight(true)) - } - } -}) -{% endhighlight %} - - -### Options - -Options can be passed via data attributes or JavaScript. For data attributes, append the option name to `data-`, as in `data-offset-top="200"`. - -<div class="table-responsive"> - <table class="table table-bordered table-striped"> - <thead> - <tr> - <th style="width: 100px;">Name</th> - <th style="width: 100px;">type</th> - <th style="width: 50px;">default</th> - <th>description</th> - </tr> - </thead> - <tbody> - <tr> - <td>offset</td> - <td>number | function | object</td> - <td>10</td> - <td>Pixels to offset from screen when calculating position of scroll. If a single number is provided, the offset will be applied in both top and bottom directions. To provide a unique, bottom and top offset just provide an object <code>offset: { top: 10 }</code> or <code>offset: { top: 10, bottom: 5 }</code>. Use a function when you need to dynamically calculate an offset.</td> - </tr> - <tr> - <td>target</td> - <td>selector | node | jQuery element</td> - <td>the <code>window</code> object</td> - <td>Specifies the target element of the affix.</td> - </tr> - </tbody> - </table> -</div> - -### Events - -Bootstrap's affix plugin exposes a few events for hooking into affix functionality. - -<div class="table-responsive"> - <table class="table table-bordered table-striped"> - <thead> - <tr> - <th style="width: 150px;">Event Type</th> - <th>Description</th> - </tr> - </thead> - <tbody> - <tr> - <td>affix.bs.affix</td> - <td>This event fires immediately before the element has been affixed.</td> - </tr> - <tr> - <td>affixed.bs.affix</td> - <td>This event is fired after the element has been affixed.</td> - </tr> - <tr> - <td>affix-top.bs.affix</td> - <td>This event fires immediately before the element has been affixed-top.</td> - </tr> - <tr> - <td>affixed-top.bs.affix</td> - <td>This event is fired after the element has been affixed-top.</td> - </tr> - <tr> - <td>affix-bottom.bs.affix</td> - <td>This event fires immediately before the element has been affixed-bottom.</td> - </tr> - <tr> - <td>affixed-bottom.bs.affix</td> - <td>This event is fired after the element has been affixed-bottom.</td> - </tr> - </tbody> - </table> -</div> diff --git a/docs/migration.md b/docs/migration.md index 26139b818b3e22a47c694daa4a4e61575f2a7e10..c73fcaeae44df76e297ae6b36352d31fd552a7a8 100644 --- a/docs/migration.md +++ b/docs/migration.md @@ -17,6 +17,7 @@ For a broader overview, see [what's new](http://blog.getbootstrap.com/DEAD-LINK- - Switched from LESS to SCSS for our source CSS files. - Added a new grid tier for ~`480px` and below. - Dropped Glyphicons icon font. +- Dropped the Affix jQuery plugin. We recommend using a `position: sticky` polyfill instead. [See the HTML5 Please entry](http://html5please.com/#sticky) for details and specific polyfill recommendations. - Refactored nearly all components to use more unnested classes instead of children selectors. - Non-responsive usage of Bootstrap is no longer supported. - Dropped the online Customizer in favor of more extensive setup documentation. diff --git a/scss/_utilities.scss b/scss/_utilities.scss index 5e297fc75eb0f28f18515be5c3d0a76ca0e6fac4..09f5698348624c6a9b0dbb3b7ae38e6e23389cbe 100644 --- a/scss/_utilities.scss +++ b/scss/_utilities.scss @@ -61,11 +61,6 @@ } -// For Affix plugin -.affix { - position: fixed; -} - // Alignment .text-left { text-align: left; } .text-right { text-align: right; }