jQuery « jquery, автоматическая горизонтальная прокрутка
Здравствуйте!
Подскажите, пожалуйста, скрипт "карусель" - автоматической (по кругу без остановки) горизонтальной прокрутки изображений, чтобы был ряд из 2-3 изображений, а не по одному. чтобы при наведении курсора на изображение, прокрутка останавливалась и можно было пройти по ссылки. Много есть разных прокруток, но как правило не автоматических, а со стрелочками.
Заранее благодарю, всех откликнувшихся!
Подскажите, пожалуйста, скрипт "карусель" - автоматической (по кругу без остановки) горизонтальной прокрутки изображений, чтобы был ряд из 2-3 изображений, а не по одному. чтобы при наведении курсора на изображение, прокрутка останавливалась и можно было пройти по ссылки. Много есть разных прокруток, но как правило не автоматических, а со стрелочками.
Заранее благодарю, всех откликнувшихся!
1 ответов
Ну вот, с пылу-жару. Специально для Вас =)
jQuery
$(document).ready(function(){
var marg = 2; // отступы между фотками
var hght = 210; // высота карусели
speed = 2; // скорость прокрутки
var imgs = $("#scrolled > img");
var scrl = $("#scrolled");
var crsl = $("#carusel");
wdth = 0;
imgs.css("margin","0 "+marg);
crsl.css({overflow:"hidden","height":hght});
$.each(imgs,function(index,value){
wdth += ($(imgs[index]).width()+(marg*2)+5);
})
scrl.width(wdth);
function rightScroll(){
var firstImg = $("#scrolled > img:first");
var lastImg = $("#scrolled > img:last");
var scroll = crsl.scrollLeft();
crsl.scrollLeft(scroll + speed);
if(scroll > firstImg.width()){
crsl.scrollLeft(scroll - (firstImg.width()+(marg*2)));
firstImg.clone(true).insertAfter(lastImg);
$(firstImg).remove();
}
}
crsl.mouseover(function(){
clearInterval(timer);
}).mouseout(function(){
timer = setInterval(rightScroll,10);
})
timer = setInterval(rightScroll,10);
});
html
<div id="carusel" style="border:solid;width:700px;overflow:auto">
<div id="scrolled">
<img src="#" width="300px" height="200px" style="background-color:green;float:left;" alt="image 0">
<img src="#" width="350px" height="200px" style="background-color:yellow;float:left;" alt="image 1">
<img src="#" width="250px" height="200px" style="background-color:blue;float:left;" alt="image 2">
<img src="#" width="310px" height="200px" style="background-color:red;float:left;" alt="image 3">
</div>
</div>
http://jsfiddle.net/J8jX3/1/