Есть 2 функции: одна сменяет баннеры по таймеру, другая - при клике на переключатели.
Хотелось бы объединить эти функции в одну, но не знаю, как. Сам код:
var activeIcon = '/images/circle_active.png',
inactiveIcon = '/images/circle_inactive.png',
interval = 5000;
// Функция смены баннеров по таймеру
function slider() {
var current = $('.scrollbar img[src="' + activeIcon + '"]').closest('span'),
next = (current.next().length > 0) ? current.next() : $('.scrollbar span:first-child'),
$banner = $('.banner img'),
background = $banner.attr('src'),
src = next.data('src'),
id = next.data('id');
$('.scrollbar img').attr('src', inactiveIcon);
next.find('img').attr('src', activeIcon);
$('.banner').css('background', 'url(' + background + ')');
$banner.fadeOut(100, function() {
$(this).attr('src', src).data('id', id).fadeIn(800);
});
}
var changeBanners = window.setInterval(slider, interval);
// Смена баннеров при клике на кнопку
$('.scrollbar').on('click', 'span', function() {
var $this = $(this),
$banner = $('.banner img'),
background = $banner.attr('src'),
src = $this.data('src'),
id = $this.data('id');
clearInterval(changeBanners);
$('.scrollbar img').attr('src', inactiveIcon);
$this.find('img').attr('src', activeIcon);
if (src != $banner.attr('src')) {
$('.banner').css('background', 'url(' + background + ')');
$banner.fadeOut(100, function() {
$(this).attr('src', src).data('id', id).fadeIn(800);
});
} else {
return false;
}
changeBanners = window.setInterval(slider, interval);
});
Может кто-нибудь помочь или подкинуть идею?