Simple “Zen” Reading Mode with MooTools
simplifying website headers on-demand
Gigantic, image-based headers are an up-to-date web-feature. It looks amazing but they are squandering space, especially on sites with large tutorials containing long text.
This site is using a simply method which transforms the header-size depending on the current page-scroll: the users scrolls down and the header is automatically transformed to a smart toolbar – i’m calling this mode (following WordPress’ fullscreen editor) “Zen” reader mode. Need a demo ? Just open an article on this site and scroll down.
To integrate this feature into you website, you need the followindd things:
- “Standard” Header Design
- “Smart/Compact” Header Design
- Javascript Page-Scroll Observer
- Optional: Amazing css3 transition
Different Header-Styles (using LESS):#
/* Basic (default) Styling */ .navbar-beyond{ height: 70px; .transition(500ms); } /* Smart Styling */ .navbar-beyond-light{ height: 45px; border-bottom: solid 1px #e7e7e7; background-color: @color_bluegrey1 !important; } /* Large Navbar */ .navbar-beyond-dark{ background-color: rgba(0,0,0,0.85); border-bottom: none; }
Scroll-Observer Script (MooTools) :#
Description: user scrolls 200px down and the header is transformed by changing the css classes
var head = document.getElement('header .navbar-beyond'); ... window.addEvent('scroll', function(){ // get current scroll var s = this.getScroll().y; // dark/light topnav if (s > 200){ head.addClass('navbar-beyond-light'); head.removeClass('navbar-beyond-dark'); }else{ head.addClass('navbar-beyond-dark'); head.removeClass('navbar-beyond-light'); } });
Header Structure (Bootstrap based example from this website)#
<!-- Fixed navbar --> <div class="navbar navbar-default navbar-fixed-top navbar-beyond navbar-beyond-dark" role="navigation"> <div class="container container-lg"> <!-- Website Title + Mobile Nav Button !--> <div class="navbar-header"> <button type="button" class="navbar-toggle"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="http://andidittrich.com">Beyond Technology<br /><span>beyond the visible world</span></a> </div> <!-- Navi !--> <div class="navbar-collapse hidden-xs"> <ul id="menu-topnavi" class="nav navbar-nav navbar-right"> .... </ul> </div> </div> </div> <!-- Image --> <div id="HeaderImage"> </div>