これは、クリック イベントが呼び出されない原因となる、アニメーション化された要素の CSS3 Rotateと非常によく似た問題です。
私の問題は少し異なりますが、サポート情報を追加するためにコメントすることはできません.
私のサンドボックスをチェックしてください:http://jsfiddle.net/5bsG3/2/
マウスをホバーすると、リンク内に Y 軸を中心に回転するスパンがあります。クリック イベント (jQuery または単にリンク ナビゲーションの場合) は常に検出されるとは限りません。リンクのパディングされた領域をクリックしてみてください (テキストのすぐ外で、リンク上にあります)。スパンが回転していて、マウスがスパンをクリックしていない角度であるため、ヒット検出に問題があるようです。マウスがまだ LINK のパディングされた領域をクリックしているにもかかわらず。70 ~ 110 度前後の角度が問題のようです。
前述の投稿で提案された解決策は、実際にはこの問題を解決しません。また、ローテーションが JS 間隔トリガーではなく CSS 遷移として処理されるため、私の問題は少し異なる可能性があります。
何かご意見は?誰もこれを見たことがありますか?これが安っぽいリンク方法であることは承知していますが、対象の Web サイトにとっては許容範囲のチーズです。
気軽に jsfiddle を単純化してください。私は単純なものから始めて、問題を特定するのに役立つデバッグ情報を少し追加しました。
html:
<ul>
<li><a href="" class="flip-link"><span>Click this link</span></a></li>
<li id="LinkCounter">LinkClicked</li>
<li> </li>
<li id="SpanCounter">SpanClicked</li>
<ul>
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);
});
});