2010-07-28 3 views
0

J'ai adapté le code de la slideSwitch.js tutorial par Jon Raasch, qui est fondamentalement un diaporama qui s'estompe. Le script promeut la glissière "active" vers un index z plus élevé et anime l'opacité pour un effet de fondu.Fading jQuery diaporama flicker/file d'attente problème sur mouseover (slideSwitch.js)

Cela fonctionne correctement avec une pause ajoutée pour arrêter temporairement le diaporama au passage de la souris.

Le problème que je rencontre est que j'essaie d'arrêter la mise en file d'attente du script lorsque je passe plusieurs fois la souris sur le diaporama. Quand cela arrive, il scintille et devient furieux.

J'ai expérimenté avec stop() mais je ne l'ai pas fonctionné correctement.

Quelqu'un peut-il me conseiller où insérer ceci dans le code suivant? Ou si j'y vais dans le mauvais sens !!

Vive

Luke

function slideSwitch() { 
var $active = $('#hp-featured div.active'); 
if ($active.length == 0) $active = $('#hp-featured div:last'); 
var $next = $active.next().length ? $active.next() 
    : $('#hp-featured div:first'); 
$active.addClass('last-active'); 
$next.css({opacity: 0.0}) 
    .addClass('active') 
    .animate({opacity: 1.0}, 1000, function() { 
     $active.removeClass('active last-active'); 
    }); 
} 
$(function() { 
    var playSlideshow = setInterval("slideSwitch()", 5000); 
$('#hp-featured div').hover(function() { 
    clearInterval(playSlideshow); 
    }, 
    function() { 
     playSlideshow = setInterval("slideSwitch()", 5000); 
    }); 
}); 
+0

Utilisez '.stop (true, true)'. C'est moche, mais parfois c'est le seul moyen de faire fonctionner certains effets visuels. – MvanGeest

+0

Ce que j'ai déjà essayé mais je ne sais pas où le mettre. Où suggérez-vous? – Luke

Répondre

0

Ok je résolu celui-ci, le problème n'a pas été dans le code, mais dans le fait qu'il y avait une somme supplémentaire div imbriqué dans le parent 'slide' div. La fonction tirait sur les deux et provoquait le chaos.

À votre santé