Sliding Screens PanelSnap

Fullscreen vertically-sliding DIVs, with fixed-position navigation. Used PanelSnap jQuery plugin.

by the_voder

HTML

<script src="https://dl.dropboxusercontent.com/u/56358859/jsfiddle_assets/query-plugins/panelsnap/jquery.panelSnap.js"></script>
<header>
    <nav>
        <div id="menu">
             <a href="/panel1" data-panel="panel1">Panel 1</a>
             <a href="/panel2" data-panel="panel2">Panel 2</a>
             <a href="/panel3" data-panel="panel3">Panel 3</a>
             <a href="/panel3" data-panel="panel4">Panel 4</a>
        </div>
    </nav>
</header>

<section id="screen1" class="screens" data-panel="panel1">
    <div class="screencontent">Screen 1</div>
</section>
<section id="screen2" class="screens" data-panel="panel2">
    <div class="screencontent">Screen 2</div>
</section>
<section id="screen3" class="screens" data-panel="panel3">
    <div class="screencontent">Screen 3</div>
</section>
<section id="screen4" class="screens" data-panel="panel4">
    <div class="screencontent">Screen 4</div>
</section>

CSS

body, html {
    height:100%;
    margin: 0;
    padding: 0;
}
#menu {
    position: fixed;
    left: 20px;
    top: 20px;
    z-index: 999;
    padding: 5px;
    background-color: #ddd;
    border-radius: 4px;
    box-shadow: 0 0 10px 0 rgba(0,0,0,0.1);
}
#menu a:link, ul#navigation li a:visited, ul#navigation li a:active {
    text-decoration: none;
    width: 80px;
    display: block;
    height: 20px;
    color: #666;
    margin: 0 0 2px 0;
    padding: 5px;
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    border-radius: 4px;
    transition: background-color 1000ms ease-out;
}
#menu a:hover {
    background-color: #eee;
    transition: background-color 500ms ease-out;
}
/* This class is applied by PanelSnap to current active screen link in nav menu */
.active {
    background-color: white;
}
.screens {
    position: relative;
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
}
#screen1 {
    background-color: red;
}
#screen2 {
    background-color: green;
}
#screen3 {
    background-color: blue;
}
#screen4 {
    background-color: yellow;
}
.screencontent {
    position: absolute;
    margin: auto;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    text-align: center;
    width: 100px;
    height: 100px;
    padding: 10px;
    background-color: white;
}

JavaScript

/*
    REQUIRED PLUGINS
   
    jQuery PanelSnap:
    https://github.com/guidobouman/jquery-panelsnap
*/

$(document).ready(function() {
    // Options for jQuery PanelSnap plugin    
    var options = {
        $menu: $('#menu'),        // Menu selector
        menuSelector: 'a',        // Menu item selector
        panelSelector: 'section', // Panel element
        directionThreshold: 50,   
        slideSpeed: 500
    };
    
    // Apply PanelSnap to body element
    $('body').panelSnap(options);
});