Responsive Horizontal Scrolling Menu

css, html, javascript, jquery, mobile-website

Solution

So, finally I think I have what you are looking for:

Fiddle: http://jsfiddle.net/fzXMg/2/

CSS and HTML is in the Fiddle...

JS:

$(function(){
    var state = 0;
    var maxState = 6;
    var winWidth = $(window).width();
    $(window).resize(function(){
        winWidth = $(window).width();
        $('.box,.container_element').width(winWidth-100);
    }).trigger('resize');
    $('#lefty').click(function(){
        if (state==0) {
           state = maxState;
        } else {
           state--;
        }
        $('.container_element').animate({scrollLeft:((winWidth-100)*state)+'px'}, 800);
    });
    $('#righty').click(function(){
        if (state==maxState) {
           state = 0;
        } else {
           state++;
        }
        $('.container_element').animate({scrollLeft:((winWidth-100)*state)+'px'}, 800);
    });
});

This uses jQuery again.

Problem

http://healthunit.com has a clean horizontal scrolling menu at the top of the screen once you view it from a mobile phone device. I'm trying to mimic that same exact functionality thanks to a site I'm redesigning with a huge level of navigation elements. Requirements: - Left and right scroll click options - Centered list item option centered in the space - Only one list item visible at a time - Horizontal Scrolling & Responsive - Clicking the last or first option in the list will take you to either the first option or last option in the list My current html for this section is: ``` <nav id="sub" class="clearfix"> <ul class="wrapper"> <a href="#"><li>Estimate</li></a> <a href="#"><li>About</li></a> <a href="#"><li>Customer Information</li></a> <a href="#"><li>Financing</li></a> <a href="#"><li>Careers</li></a> <a href="#"><li>Locate Us</li></a> <a href="#"><li>Inspiration</li></a> </ul> </nav> ``` The CSS currently attached to it is: ``` nav#sub { background: #004173; background: linear-gradient(to bottom, #004173 0%,#014f8d 100%); background: -moz-linear-gradient(top, #004173 0%, #014f8d 100%); background: -ms-linear-gradient(top, #004173 0%,#014f8d 100%); background: -o-linear-gradient(top, #004173 0%,#014f8d 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#004173), color-stop(100%,#014f8d)); background: -webkit-linear-gradient(top, #004173 0%,#014f8d 100%); border-bottom: #00325a solid 3px; box-shadow: 0 4px 6px 0 #BFBFBF; filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#004173', endColorstr='#014f8d',GradientType=0 ); webkit-box-shadow: 0 4px 6px 0 #BFBFBF; } #sub ul { text-align: center; } #sub ul li { padding: 10px 3.3%; } #sub a { color: #fff; font-size: 10pt; font-weight: 400; text-decoration: none; } #sub ul a:hover li { background: #007FEB; } ```

Original source