Questo è un problema molto simile a CSS3 Rotate on animated element causing click event not to invoketransizione CSS3 rotazione provocando il mouse intermittente click rilevamento
Anche se il mio problema è un po 'diverso, più non posso commentare su di esso per aggiungere informazioni di supporto.
Checkout mia sandbox: http://jsfiddle.net/5bsG3/2/
Ho un arco all'interno di un link che ruota attorno all'asse Y, al passaggio del mouse. L'evento click (per jQuery o semplicemente per la navigazione con link) non viene sempre rilevato. Prova a fare clic sulla regione imbottita del link (appena fuori dal testo ma sul link). È quasi come se ci fosse un problema con il rilevamento dei colpi perché lo span sta girando e quindi in angoli in cui il mouse non sta facendo clic sullo span. Anche se il mouse continua a fare clic sulla regione imbottita del LINK. Angoli intorno 70-110 gradi sembrano essere il problema.
La soluzione proposta nel post di cui sopra non risolve effettivamente questo problema. Inoltre, il mio problema potrebbe essere un po 'diverso dal momento che la mia rotazione è gestita come una transizione CSS invece di un trigger di intervallo JS.
Qualche idea? Qualcuno ha visto questo prima? So che questo è un modo scadente di fare collegamenti, ma per il sito web di destinazione, è un formaggio di quantità accettabile.
Sentiti libero di semplificare il jsfiddle, ho iniziato in modo semplice e ho aggiunto un po 'di informazioni di debug per aiutare a identificare il problema.
html:
css:
ul li
{
display: inline;
float: left ;
}
.flip-link
{
float:left ;
}
span
{
float:left ;
}
.flip-link {
display: block;
overflow: hidden;
height: 20px;
padding: 5px 50px 7px 50px ;
margin-right: 10px ;
background: #AAA;
-webkit-perspective: 50px;
-moz-perspective: 50px;
-ms-perspective: 50px;
perspective: 50px;
-webkit-perspective-origin: 50% 50%;
-moz-perspective-origin: 50% 50%;
-ms-perspective-origin: 50% 50%;
perspective-origin: 50% 50%;
}
.flip-link span {
display: block;
position: relative;
background: #EEE;
padding: 0px 10px ;
-webkit-transition: all 1000ms ease;
-moz-transition: all 1000ms ease;
-ms-transition: all 1000ms ease;
transition: all 1000ms ease;
-webkit-transform-origin: 50% 0%;
-moz-transform-origin: 50% 0%;
-ms-transform-origin: 50% 0%;
transform-origin: 50% 0%;
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
-ms-transform-style: preserve-3d;
transform-style: preserve-3d;
}
.flip-link:hover span
{
-webkit-transform: translate3d(0px, 0px, 0px) rotateY(360deg);
-moz-transform: translate3d(0px, 0px, 0px) rotateY(360deg);
-ms-transform: translate3d(0px, 0px, 0px) rotateY(360deg);
transform: translate3d(0px, 0px, 0px) rotateY(360deg);
color: #55FF55 ;
}
JS:
var linkClickCount = 0 ;
var spanClickCount = 0 ;
$(document).ready(function() {
$('.flip-link').click(function() {
linkClickCount++ ;
$("#LinkCounter").text(linkClickCount);
return (false);
});
$('.flip-link span').click(function() {
spanClickCount++ ;
$("#SpanCounter").text(spanClickCount);
});
});
Ho dimenticato di menzionare che i clic del mouse funzionano bene se lo span non è in fase di transizione. Se imposto angoli statici, puoi fare clic nella regione imbottita del collegamento (non sul testo) e rileva ancora il clic. Ma se il testo sta ruotando, da qualche parte intorno a 70-110 gradi, * coerentemente * non cattura il clic. –
è necessario registrare i clic quando l'articolo è in rotazione? è critico? –
Sì, dato che si tratta di un collegamento, ho bisogno che l'utente sia in grado di fare clic sul collegamento senza attendere che la rotazione finisca. Se fanno clic durante la rotazione e il clic non funziona, l'ipotesi naturale è che il collegamento semplicemente non sia cliccabile.Ma buona domanda, controlla il progetto dal vivo (ma non molto pubblicizzato) qui: www.trickspoke.com Per questo sito dal vivo, la transizione è piuttosto veloce, riducendo al minimo il problema - anche se è ancora lì. –