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>