Почему Google Chrome не выполняет функцию непрерывного затухания после смены вкладки? - PullRequest
0 голосов
/ 22 июля 2011

Я пытался использовать следующий код для выполнения слайд-шоу с исчезающим эффектом:

function slideSwitch() {
    var $active = $('#slideshow IMG.active');

    if ( $active.length == 0 ) $active = $('#slideshow IMG:last');

    var $next =  $active.next().length ? $active.next() : $('#slideshow IMG:first');

    $active.addClass('last-active');

    $next.css({opacity: 0.0})
    .addClass('active')
    .animate({opacity: 1.0}, 1000, function() {
        $active.removeClass('active last-active');
    });
}

$(function() {
    setInterval( "slideSwitch()", 5000 );
});

Теперь это прекрасно работает для меня во всем (хорошо, в Safari, Firefox и IE), но Chrome действует очень раздражающе и странно. Если я нахожусь на другой вкладке или какое-то время свернул окно и вернусь на вкладку, слайд-шоу перестанет работать на определенный период времени (в зависимости от того, как долго вкладка не просматривается). и будет мерцать и не изменится должным образом. Как будто он перестает выполнять функцию, когда вкладка не видна, и когда она возвращается в поле зрения, она выталкивает все, что она должна была делать, когда вкладка не видна (хотя и неправильно).

Вы можете попробовать это сами здесь . Я также загрузил видео здесь .

Это происходит только в Chrome, и еще одна вещь произошла с двумя сценариями, которые я опробовал, но демонстрации на страницах сценариев работают нормально. 2 сценария:

http://jonraasch.com/blog/a-simple-jquery-slideshow а также "Простое слайд-шоу исчезает"

...