Pause Flexslider quand l'overlay est ouvert
Nous sommes actuellement en train de travailler sur un projet qui utilise le Flexslider plugin (récemment acquis par Woo Themes). Nous avons plusieurs pop-ups sur cette page, et nous voulons le curseur pour mettre en pause lorsque les pop-ups sont actifs et le reprendre lorsque les pop-ups à proximité. La pause ne fonctionne que le premier go 'round et le reprendre le curseur ne fonctionne pas. Ci-dessous le code que nous utilisons pour le curseur. J'ai essayé de commutation sur le "démarrer" de la fonction avec tous les appels à l'exception de la "fin d'appel".
$w('#slider-cadre).flexslider({ animation: "fade", directionNav: false, slideshowSpeed: 4000, controlNav: true, pauseOnHover: true, manualControls: '#indicateur-points de li', start: function(curseur){ $w('.roi-cliquez sur').cliquez sur(function(){ curseur.trigger('mouseenter'); }); $w('div#ovrly, un#fermer").cliquez sur(function(){ curseur.trigger('mouseleave'); }); } });
Le lien vers la page est http://www.whitehardt.com/sandbox/whitehardt-v3.
Toute aide serait grandement appréciée.
OriginalL'auteur WH Web Dev | 2012-03-07
Vous devez vous connecter pour publier un commentaire.
Édité
Je pense que j'ai compris ce qu'il se passe ici. Le problème est que vous avez un conflit événements en cours.
setInterval
et le stockage de l'intervalle ID dans une variable d'état (slider.animatedSlides
).clearInterval()
.roi
lien dans la diapositive, qui s'arrête de nouveau, en compensation de ce qui est aujourd'hui un non-existant intervalle.mouseleave
sur le Flexslider, donc il commence à l'animation de nouveau avecsetInterval()
et stocke l'ID d'intervalle.resume()
, qui a également fait unsetInterval()
, l'écrasement de la stockées ID d'intervalle. Donc, maintenant, vous avez deux animations va, d'où le double de la vitesse. Plus, prochaine fois que vous appelezpause()
, il n'a accès qu'à effacer le dernier intervalle défini, car il a remplacé le stockés ID. Donc, on ne peut plus claire de l'intervalle à partir de l'étape 3. Donc, vous allez entre le fait d'avoir un intervalle d'animation (lent), lorsque vousmouseenter
et de deux quand vousmouseleave
(rapide).Au lieu de la suspension sur le clic, vous pouvez mettre en pause sur
#ovrly
passage de la souris, et de la reprendre sur un clic, parce que le mouseexit de la Flexslider serait avant le passage de la souris de la superposition.Mais, vous risquez de rencontrer des problèmes similaires, en fonction de si la souris est sur le curseur ou pas lors de la superposition est fermé... mais je ne suis pas sûr. Idéalement, Flexslider refusait de démarrer une nouvelle animation si l'on était déjà en cours. Vous pourriez hack en flexslider.js:
Vous pourriez surcharge de ces fonctions dans votre
start:
paramètre de la fonction.Ce changement permettra de résoudre la vitesse et le fait que vous ne pouvez pas suspendre de nouveau. Vous aurez toujours le problème du curseur lors de la reprise de votre superposition de pop-up. Cela peut être résolu avec la
mouseover
solution je l'ai mentionné avant.Ici est un violon qui montre la
mouseover
solution: http://jsfiddle.net/jtbowden/TWN5t/Il semble que si vous ne pouvez pas besoin de deuxième hack, mais il est mieux de code.
Essayez mes modifications ci-dessus. Je pense que votre curseur est hors de portée dans le gestionnaire de clic. Faire une variable pour contenir une référence à glissière, et ensuite l'utiliser dans votre gestionnaires de clic. Voir si cela change quoi que ce soit.
Cela a les mêmes résultats.
Oui, le déclenchement de jouer sur le wrap complet serait certainement glitch à moins que vous mettre en œuvre le curseur hack/fix que j'ai mentionnés.
Merci!!!!!! Le problème est résolu après la mise en œuvre de la hack/fix. WooThemes devraient envisager d'ajouter ce point à l'FlexSlider! J'aurais voté la réponse mais je suis trop nouveau pour Dépassement de Pile pour le faire.
OriginalL'auteur Jeff B
@Jeff B, merci pour le JS correctif. Depuis il ne fonctionne pas avec les 2.x direction générale de Flexslider je pense que c'est juste pour 1.x
Pour ceux sur 2.x, un correctif a été soumis par nvartolomei:
https://github.com/woothemes/FlexSlider/pull/322
OriginalL'auteur Paul
J'ai fait face à la même question travailler avec brightcove+flexslider.
voici ma solution:
avant
puis
.flex-pauseplay .flex-jeu css opacity: 0
OriginalL'auteur Guido Medugno