10
votes

Délai difficile sur la sourisovie

C'est ce que j'ai actuellement: xxx

ce qu'il fait est:

si MouseOver # Panier - Sommaire -> Ouvrir FlyCart Après 500ms

si Mouseout .FLYCART -> Fermer FlyCart après 500ms

Ce dont j'ai besoin est:

si maigre Résumé pour au moins 500ms -> Ouvrir FlyCart

si Mouseout .flycart pour au moins 500ms -> Fermer Flycart

Edité pour ajouter: J'utilise aussi Hoverintent, si qui peut être utilisé ici?

Merci beaucoup!


0 commentaires

5 Réponses :


3
votes

On dirait que vous pourriez avoir besoin de Plugin Hoverintent .

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.


1 commentaires

Trouvé une demande similaire ici: Stackoverflow.com/questions/1482029/... Mais je veux utiliser Hoverintent si possible.



3
votes

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();
});


0 commentaires

18
votes

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)
});


0 commentaires

2
votes

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);
})...


0 commentaires

0
votes

offre une solution xxx

fonctionnera si le panier est mis à jour de manière dynamique xxx


0 commentaires