как добавить в 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, время: 19:22. |