horizontal scroll
content horizontal scroll
by apasaja
HTML
<nav>
<ul>
<li frame="0" class="nav active-state">1</li>
<li frame="1" class="nav">2</li>
<li frame="2" class="nav">3</li>
<li frame="3" class="nav">4</li>
<li frame="4" class="nav">5</li>
</ul>
</nav>
<section id="content">
<div id="wrapper">
<div class="content" id="yellow"></div>
<div class="content" id="blue"></div>
<div class="content" id="red"></div>
<div class="content" id="purple"></div>
<div class="content" id="green"></div>
</div>
</section>
<ul id="directionNav">
<li id="left">left</li>
<li id="right">right</li>
</ul>
CSS
nav{
widows: 100%;
margin:30px 0 30px 0;
padding:0;
text-align:center;
}
nav ul li{
border: 1px solid black;
padding: 5px 10px;
color:white;
background: black;
display: inline;
cursor: pointer;
}
nav ul li:hover{
padding:4px 9px;
}
#content{
position:relative;
width:598px;
height:300px;
margin: 0 auto 20px auto;
overflow:hidden;
padding:0;
}
#directionNav{
width:100%;
text-align:center;
}
#directionNav li{
display: inline;
padding: 5px 10px;
background: black;
color: white;
cursor:pointer;
}
#blue{
background:blue;
}
#green{
background:green;
}
#red{
background:red;
}
#purple{
background:purple;
}
#yellow{
background:yellow;
}
#directionNav li:hover{
padding:4px 9px;
}
#wrapper{
position:absolute;
width: 3000px;
height:300px;
background:grey;
margin:0 auto 20px auto;
padding:0;
left: 0;
}
.active-state{
background: white;
color:black;
}
.content{
width:600px;
height:300px;
display:inline-block;
background:black;
vertical-align:top;
margin:0 -2px;
padding:0;
}
JavaScript
$('.nav').click(changeFrame);
$('#directionNav').find('li').click(navigFrame);
function changeFrame(){
$('#wrapper').animate({left : $(this).attr('frame')*-600});
$('.active-state').removeClass('active-state')
$(this).addClass('active-state')
}
function navigFrame(){
switch(this.id){
case 'left' : doNavig(-1); break;
case 'right' : doNavig(1); break;
}
}
function doNavig(direction){
var newPage = parseInt($('.active-state').attr('frame'))+direction;
if(newPage < $('.nav').length && newPage >= 0){
$('#wrapper').animate({left : newPage*-600});
$('.active-state').removeClass('active-state')
$('.nav:nth-child('+String(newPage + 1)+')').addClass('active-state')
}
}