Domanda

desidero attivare una funzione .mouseover solo se il mouse fissa sull'elemento "trigger" per una durata predeterminata (ad esempio 500 millisecondi).

per es.

$('.featured').mouseover(function () {
      $('.feat-txt').fadeOut("fast");
    });

Solo se il mouse viene posizionato sopra l'elemento .featured per il periodo di almeno 500 millisecondi, la funzione può aprire .feat-TXT permette FadeOut. Un semplice mouse sopra (solo un movimento rapido) su tale elemento non attiva la funzione.

Qualsiasi suggerimento su come farlo?

È stato utile?

Soluzione

Ho usato intento hover in passato - piuttosto buona e fa quello che stai dopo penso:

http://cherne.net/brian/resources/jquery.hoverIntent.html

Altri suggerimenti

fare in questo modo:

  • Intercept onmouseover eventi in quell'elemento. Nella funzione di callback non fare nulla; invece chiamare un'altra funzione con il ritardo che si desidera, ad esempio, nel prototipo si fa con functionName.delay (500)

  • Nel secondo controllo funzionale se il mouse è ancora sull'elemento utilizzando qualsiasi jQuery permette di ottenere le coordinate del mouse e coordina l'elemento. Se il mouse è ancora lì, fare quello che voleva fare.

Questo non funziona per lunghi ritardi in quanto l'utente potrebbe spostare il mouse fuori e indietro all'interno dell'elemento e functionName sarà ancora sparare.

Se non ti dispiace me dicendo che, questa è una pessima idea.

In realtà, ho trovato anche questo plugin jQuery hover. http://blog.threedubmedia.com/2008/08/eventspecialhover.html

Non usa la durata mouseover attesa, ma utilizza la velocità del mouse in un determinato periodo di tempo.

Il risultato può essere visto sui tre caselle visualizzate sul lato destro di questa pagina: http: //www.splendida .it (attualmente sto lavorando su di esso).

Sembra bello per me. Quando il mouse passa rapidamente dalla prima alla terza casella, non succede nulla, anche se il mouse passa sopra il secondo elemento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top