Сообщение от imhateb
|
Неа, не работает ((
Останавливаться останавливается, но так и не запускается при возвращении в область видимости.
|
Ошибка была в написании самой функции. Надо было сделать вот так:
function paginator() {
$('.sidebar .paginator div').click(function(){
if(!$(this).hasClass('act_pagi')) {
var act_id = parseInt($(this).attr('id').replace(/\D+/g,""));
pagination(act_id);
}
});
$('.sidebar').mouseenter(function(){stopInterval();}); // остановка автоматического перелистывания при наведении мышки
$('.sidebar').mouseleave(function(){startInterval();animate_bar();}); // запуск автоматического перелистывания когда наведения мышки нет
animate_bar();
startInterval();
}
var interval, timer = 7300;
function startInterval() {
interval = setInterval(function(){
animate_bar();
var act_id = parseInt($('.sidebar .paginator div.act_pagi').attr('id').replace(/\D+/g,""));
var pagi = $('#sb_paginator div').length;
if (act_id < pagi) {act_id++} else {act_id = 1};
pagination(act_id);
},timer);
};
function pagination(act_id) {
$('.sidebar .paginator div').removeClass('act_pagi');
$('.sidebar .paginator div#sb_p'+act_id).addClass('act_pagi');
$('.sb_content').removeClass('show');
$('.sb_content#sb'+act_id).addClass('show');
$('.section1 .back').removeClass('show');
$('.section1 .back#back'+act_id).addClass('show');
};
function stopInterval() {clearInterval(interval); $('.progress_bar span').stop().css('width', '0px');}
function animate_bar() {$('.progress_bar span').animate({width: "100%"},timer, function(){$(this).css("width", "0px");});};
И запускать только paginator()
$(document).ready(function() {
if ($('div').is('.sidebar')) {paginator();}
});
$(document).on('scroll', function () {
if ($('div').is('.sidebar')) {stopInterval(); if (viewport($('.section1')) == 'visible') paginator();}
});
Всем спасибо за помощь ))