Easy jQuery Affix,Scrollspy And Reading Progress Plugin - newsAffix
File Size: | 11.2 KB |
---|---|
Views Total: | 1448 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |

newsAffix is a simple-to-use jQuery affix / scrollspy / reading progress plugin used to generate a sticky header navigation & scroll progress indicator for your long web content.
Features:
- Highlights the nav items when you you scroll past their content sections.
- Displays a progress bar to indicate the reading progress of current content section.
- Scrolls smoothly between content sections by clicking on the nav items.
How to use it:
1. Create content sections where you want to apply the newsAffix plugin.
<div id="targeted-wrapper" class="content"> <section class="content__section"> <h2 class="content__title js-na-header-start" data-na-header="1">Header title 1</h2> <p class="content__text">Section 1</p> <h3 class="content__subtitle">This is sub-title 1</h3> <p class="content__text">Sub Section 1</p> </section> <section class="content__section"> <h2 class="content__title" data-na-header="2">Header title 2</h2> <p class="content__text">Section 2</p> <h3 class="content__subtitle">This is sub-title 2</h3> <p class="content__text">Sub Section 2</p> </section> <section class="content__section"> <h2 class="content__title" data-na-header="3">Header title 3</h2> <p class="content__text">Section 3</p> <h3 class="content__subtitle">This is sub-title 3</h3> <p class="content__text">Sub Section 3</p> </section> <section class="content__section"> ... </section> </div>
2. Load jQuery library and the jQuery newsAffix plugin at the end of the document.
<script src="//code.jquery.com/jquery.min.js"></script> <script src="js/jquery.newsAffix.js"></script>
3. Initialize the plugin with default options.
$('body').newsAffix();
4. Let's start to style the plugin as follows:
.news-affix { position: fixed; left: 0; top: 0; width: 100%; left: -100%; -webkit-transition: 0.3s ease-in-out; -o-transition: 0.3s ease-in-out; -moz-transition: 0.3s ease-in-out; transition: 0.3s ease-in-out; } .news-affix__items { margin: 0; padding: 0; background-color: #333; display: -webkit-box; display: -webkit-flex; display: -moz-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -webkit-flex-direction: row; -moz-box-orient: horizontal; -moz-box-direction: normal; -ms-flex-direction: row; flex-direction: row; -webkit-flex-wrap: wrap; -ms-flex-wrap: wrap; flex-wrap: wrap; } .news-affix__action { display: block; color: #fff; padding: 15px 10px; } .news-affix__action:hover, .news-affix__action:focus, .news-affix__action:active { text-decoration: none; color: #e6e6e6; background-color: #1a1a1a; } .news-affix__item { position: relative; overflow: hidden; -webkit-box-ordinal-group: 3; -webkit-order: 2; -moz-box-ordinal-group: 3; -ms-flex-order: 2; order: 2; } .news-affix__item.active { display: block; -webkit-box-ordinal-group: 2; -webkit-order: 1; -moz-box-ordinal-group: 2; -ms-flex-order: 1; order: 1; -webkit-box-flex: 1; -webkit-flex: 1 0 100%; -moz-box-flex: 1; -ms-flex: 1 0 100%; flex: 1 0 100%; } .news-affix__item.active .news-affix__action { background-color: #2980b9; } .news-affix__item.active .news-affix__bar { position: absolute; z-index: 10; background: #226998; left: 0; top: 0; height: 100%; width: 0; } .news-affix__item:not(.active) .news-affix__action { padding: 5px 10px; } .news-affix__item:not(.active) .news-affix__chapter { font-size: 14px; } .news-affix__item:not(.active) .news-affix__title { font-size: 10px; } .news-affix__item.completed { opacity: .2; } .news-affix__chapter { margin: 0; position: relative; z-index: 20; } .news-affix__title { margin: 0; position: relative; z-index: 20; } .news-affix__bar-inverse { display: none; } .news-affix.active { left: 0; }
5. Default plugin options.
$('body').newsAffix({ // selctors headerWrapper: "#targeted-wrapper", headerClass: ".content__title", sidebar: ".js-news-affix-items", newsAffixSel: ".js-news-affix", setAffixClasses: { cssClass: '.news-affix__bar', cssRule: 'width' }, onClickElements: '.js-affix-click', // animation speed scrollAnimationSpeed: 750 });
This awesome jQuery plugin is developed by tmatijev. For more Advanced Usages, please check the demo page or visit the official website.