C'est ce que j'ai actuellement: ce qu'il fait est: strong> p> si MouseOver # Panier - Sommaire -> Ouvrir FlyCart Après 500ms p> si Mouseout .FLYCART -> Fermer FlyCart après 500ms P> Ce dont j'ai besoin est: strong> p> si maigre Résumé pour au moins 500ms -> Ouvrir FlyCart P> si Mouseout .flycart pour au moins 500ms -> Fermer Flycart P> Edité pour ajouter: Strong> J'utilise aussi Hoverintent, si qui peut être utilisé ici? P> Merci beaucoup! P> P>
5 Réponses :
On dirait que vous pourriez avoir besoin de Plugin Hoverintent . P>
Je ne sais pas si ça va vous aider avec la souris au moins 500ms. Mais peut-être qu'il y a une option là-bas pour cela. P>
Trouvé une demande similaire ici: Stackoverflow.com/questions/1482029/... Mais je veux utiliser Hoverintent si possible.
Vous pouvez utiliser le Plugin Hoverintent comme suit:
var config = { sensitivity: 3, // number = sensitivity threshold (must be 1 or higher) interval: 500, // number = milliseconds for onMouseOver polling interval timeout: 500, // number = milliseconds delay before onMouseOut }; $(".flycart").hoverIntent(function () { $('.flycart').slideDown('fast'); }, function() { $('.flycart').slideUp('fast'); }).find('a.close').click(function(){ $(this).parents('.flycart').hide(); });
Utilisez le SettimeOut pour vérifier si un indicateur que vous définissez / nonset (j'utilise une classe) est toujours valide.
$("#cart-summary").mouseenter(function () { $("#cart-summary").addClass("hasFocus"); setTimeout(function(){ if ($("#cart-summary").hasClass("hasFocus")) { $('.flycart').slideDown('fast'); } }, 500 ); }); $("#cart-summary").mouseleave(function () { $("#cart-summary").removeClass("hasFocus"); }); $(".flycart").mouseenter(function () { $("#cart-summary").removeClass("lostFocus"); }); $(".flycart").mouseleave(function () { $("#cart-summary").addClass("lostFocus"); setTimeout(function(){ if ($("#cart-summary").hasClass("hasFocus")) { $('.flycart').slideUp('fast'); }).find('a.close').click(function(){ $(this).parents('.flycart').hide(); } }, 500) });
vous pouvez faire:
var timeout, $flycart = $(".flycart"), $summary = $("#cart-summary"), delay = 500; $summary.mouseenter(function () { if (timeout) window.clearTimeout(timeout); timeout = window.setTimeout(function(){ if ( $flycart.is(":visible") ) { $flycart.slideDown('fast'); } }, delay); }); $flycart.mouseleave(function () { if (timeout) window.clearTimeout(timeout); timeout = window.setTimeout(function(){ if ( $flycart.is(":visible") ) { $flycart.slideUp('fast'); } }, delay); })...
offre une solution fonctionnera si le panier est mis à jour de manière dynamique p>