У меня есть простой слайдер изображения, который я получил от Интернета. Я не знаю много JQuery вообще, только то, что я понимаю, прочитав код, который у меня есть. Код имеет слайдер изображения, который продвигается каждые 8 секунд и имеет две кнопки, которые будут продвигать изображения по щелчку, либо вперед, либо назад. Моя проблема заключается в том, что, когда я нажимаю кнопку для перехода вперед, 8-секундный таймер не сбрасывается, так что, если я нахожу 6 секунд в интервале, изображение переходит на третье изображение через 2 секунды. Прилагается мой код JQuery
. Я попытался добавить setInterval
в функции moveLeft()
и moveRight()
, но это не сработало. Прошу прощения за недостаток JQuery
знания, я изучил базовый JavaScript
в школе и не использовал его много, если вообще не было. Прикрепленный код, который у меня есть.Сброс интервала на изображении
jQuery(document).ready(function ($) {
setInterval(function() {
moveRight();
}, 8000);
var slideCount = $('#slider ul li').length;
var slideWidth = $('#slider ul li').width();
var slideHeight = $('#slider ul li').height();
var sliderUlWidth = slideCount * slideWidth;
$('#slider').css({ width: slideWidth, height: slideHeight });
$('#slider ul').css({ width: sliderUlWidth, marginLeft: - slideWidth });
$('#slider ul li:last-child').prependTo('#slider ul');
function moveLeft() {
$('#slider ul').animate({
left: + slideWidth
}, 1000, function() {
$('#slider ul li:last-child').prependTo('#slider ul');
$('#slider ul').css('left', '');
});
};
function moveRight() {
$('#slider ul').animate({
left: - slideWidth
}, 1000, function() {
$('#slider ul li:first-child').appendTo('#slider ul');
$('#slider ul').css('left', '');
});
};
$('a.control_prev').click(function() {
moveLeft();
setInterval(function() {
moveRight();
}, 8000);
});
$('a.control_next').click(function() {
moveRight();
setInterval(function() {
moveRight();
}, 8000);
});
});
вы собираетесь нужно очистить и сбросить интервал – Hamms