Acá te dejo un ejemplo:
http://codepen.io/anon/pen/YPdLGK
Este es el código:
Código HTML:
Ver original <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <div class="slidesContainer">
<a href="#" target="_blank"><img src="http://oi62.tinypic.com/3344304.jpg" /></a> <a href="#" target="_blank"><img src="http://oi62.tinypic.com/3344304.jpg" /></a> <a href="#" target="_blank"><img src="http://oi62.tinypic.com/3344304.jpg" /></a>
<a href="#" target="_blank"><img src="http://oi62.tinypic.com/3344304.jpg" /></a> <a href="#" target="_blank"><img src="http://oi62.tinypic.com/3344304.jpg" /></a> <a href="#" target="_blank"><img src="http://oi62.tinypic.com/3344304.jpg" /></a>
Código CSS:
Ver original#slider{
width: 790px;
height: 250px;
overflow: hidden;
position: relative;
margin:0 auto;
padding:15px;
background:#222;
}
.slide{
width: 1000px;
height: 250px;
float: left;
}
.slide img{
margin-right:1em;
}
Código Javascript
:
Ver original$(document).ready(function(){
/*
* Variables
*/
var slides, timer;
//Crea un objeto con informacion de los slides
slides = $('#slider .slidesContainer > .slide');
/*
* Funciones
*/
//Desplaza el contenedor hacia la direccion definida
//@direction = [left,right]
function sliderScroll(direction){
//Calcula la posicion actual del contenedor
position = $('#slider').scrollLeft();
//Calcula la anchura total menos el ultimo slide.
//Se usa para calcular cuando el scroll llega al final.
totalWidth = (slides.length * slides[0].offsetWidth) - slides[0].offsetWidth
//Se comprueba la variable direction para hacer el scroll hacia izquierda o derecha
switch (direction) {
case 'right': //Derecha
if (position+slides[0].offsetWidth > totalWidth){ //Si la siguiente posicion se sale del contenedor, vuelve al principio.
$('#slider:not(:animated)').animate({scrollLeft:0},1000);
} else { //Si no es el final, suma a la posicion actual la anchura del slide.
$('#slider:not(:animated)').animate({scrollLeft:position+slides[0].offsetWidth},1000);
}
break;
case 'left': //Izquierda
if (position-slides[0].offsetWidth < 0){ //Si la siguiente posicion se sale del contenedor, vuelve al final.
$('#slider:not(:animated)').animate({scrollLeft:totalWidth},1000);
} else { //Si no es el final, resta a la posicion actual la anchura del slide.
$('#slider:not(:animated)').animate({scrollLeft:position-slides[0].offsetWidth},1000);
}
break;
}
}
//Funcion que crea el temporizador
function initTimer(){
timer = setInterval(function(){sliderScroll('right');}, 5000);
}
/*
* Codigo
*/
//Asigna el ancho total de los slides al contenedor
//La anchura total se obtiene multiplicando la medida de un slide por el numero de slides
$('#slider .slidesContainer').css('width',slides[0].offsetWidth * slides.length);
//Click en el boton "next"
$('.next').click(function(){
clearInterval(timer); //Desactiva el temporizador
sliderScroll('right'); //Mueve el scroll a la derecha
initTimer(); //Vuelve a activar el temporizador
return false;
});
//Click en el boton "prev"
$('.prev').click(function(){
clearInterval(timer); //Desactiva el temporizador
sliderScroll('left'); //Mueve el scroll a la izquierda
initTimer(); //Vuelve a activar el temporizador
return false;
});
//Inicia el temporizador
initTimer();
});
Dato importante: NO es responsive.