как добавить в js слайдер авто прокрутку
Здравствуйте, у меня все никак не получается внедрить в свой слайдер авто прокрутку, пролопатив n-ое количество материала с готовыми авто слайдерами и проанализировав код я так и не пришел к выводу, прошу вашей помощи
<img src="images/strela1.png" id="strela1"> <img src="images/strela2.png" id="strela2"> <a href="#"> <div id="big-strela1"></div> </a> <a href="#"> <div id="big-strela2"></div> </a> <div id="slider"> <div id="slider-uvel"> <div class="show-slaider"> <a href="#"><img src="images/slider-1.jpg"></a> </div> <div class="show-slaider"> <a href="#"><img src="images/slider-2.jpg"></a> </div> <div class="show-slaider"> <a href="#"><img src="images/slider-3.jpg"></a> </div> </div> </div>
#slider {
width: 973px;
height: 383px;
float: left;
overflow: hidden;
position: relative;
}
#slider-uvel {
width: 2919px;
position: relative;
z-index: 54;
}
#big-strela1 {
height: 143px;
width: 96px;
z-index: 80;
position: absolute;
margin-top: 223px;
margin-left: 188px;
}
a:hover #big-strela1 {
background: url("images/big-strela1.png");
z-index: 80;
}
#big-strela2 {
height: 143px;
width: 96px;
z-index: 80;
position: absolute;
margin-top: 223px;
margin-left: 1066px;
}
a:hover #big-strela2 {
background: url("images/big-strela2.png");
z-index: 80;
}
#strela1 {
position: absolute;
margin-left: 206px;
margin-top: 270px;
z-index: 70;
}
#strela2 {
position: absolute;
margin-top: 270px;
margin-left: 1120px;
z-index: 70;
}
$(document).ready(function(){
$("#big-strela2").click(function(){
$("#slider-uvel").animate({right: "-973px"}, 200);
setTimeout(function () {
$("#slider-uvel .show-slaider").eq(0).clone().appendTo("#slider-uvel");
$("#slider-uvel .show-slaider").eq(0).remove();
$("#slider-uvel").css({"left":"0px"});
}, 10);
});
$("#big-strela1").click(function(){
$("#slider-uvel .show-slaider").eq(-1).clone().prependTo("#slider-uvel");
$("#slider-uvel").css({"right":"-973px"});
$("#slider-uvel").animate({left: "0px"}, 200);
$("#slider-uvel .show-slaider").eq(-1).remove();
});
});
|
сам слайдер работает? по setInterval жми на свою кнопку листания $("#big-strela2").click();
а вообще выдели листание в функцию и вызывай когда нужно. лучше пример сделай на jsfiddle.net иди песочнице на этом сайте |
да, слайдер работает. при нажатие на кнопки, он производит операции листания в стороны( зависит от кнопки). я не могу понять куда, как и какой код вставить, чтобы по мимо ручной прокрутки, происходила операция авто листания с временным периодом
|
попробуй вынуть содержимое финкции oncklick в отдельную функцию и запускать её с setInterval
$("#big-strela2").click(myFunct());
$(document).ready(setInterval(myFunct(), 5000));
function myFunct(){
$("#slider-uvel").animate({right: "-973px"}, 200);
setTimeout(function () {
$("#slider-uvel .show-slaider").eq(0).clone().appendTo("#slider-uvel");
$("#slider-uvel .show-slaider").eq(0).remove();
$("#slider-uvel").css({"left":"0px"});
}, 10);
}
сори setInterval а не setTimeout |
Цитата:
|
Всё просто.
Вот твой код:
$(document).ready(function(){
$("#big-strela2").click(function(){
$("#slider-uvel").animate({right: "-973px"}, 200);
setTimeout(function () {
$("#slider-uvel .show-slaider").eq(0).clone().appendTo("#slider-uvel");
$("#slider-uvel .show-slaider").eq(0).remove();
$("#slider-uvel").css({"left":"0px"});
}, 10);
});
$("#big-strela1").click(function(){
$("#slider-uvel .show-slaider").eq(-1).clone().prependTo("#slider-uvel");
$("#slider-uvel").css({"right":"-973px"});
$("#slider-uvel").animate({left: "0px"}, 200);
$("#slider-uvel .show-slaider").eq(-1).remove();
});
});
Замени его на:
$(document).ready(function(){
$("#big-strela1").click(function(){
$("#slider-uvel .show-slaider").eq(-1).clone().prependTo("#slider-uvel");
$("#slider-uvel").css({"right":"-973px"});
$("#slider-uvel").animate({left: "0px"}, 200);
$("#slider-uvel .show-slaider").eq(-1).remove();
});
$("#big-strela2").click(myFunct());
setInterval(myFunct(), 5000);
function myFunct(){
$("#slider-uvel").animate({right: "-973px"}, 200);
setTimeout(function () {
$("#slider-uvel .show-slaider").eq(0).clone().appendTo("#slider-uvel");
$("#slider-uvel .show-slaider").eq(0).remove();
$("#slider-uvel").css({"left":"0px"});
}, 10);
}
});
У тебя слайдер запускался только после нажатия на #big-strela2, а в коде приведенном Noobloid`ом нажатие на #big-strela2 запускает функцию, которая параллельно запускается и через setInterval с тайм-аутом 5 секунд. Так же я обычно вставляю в слайдеры такую функцию, что бы при наведении останавливалась прокрутка, но это уже баловства. Попробуй, для начала, разобраться с этим кодом. |
| Часовой пояс GMT +3, время: 20:49. |