数時間いじり、何人かの友人の助けを借りて、以前よりも優れた解決策を思いつくことができました. このアプローチでは、ホバーされた要素の前に透明な要素を使用し、要素を表示するためにギャラリーと同じホバー イベントを展開しwidth:0px; height:0px;
て発生させます。このアプローチを使用すると、マウスがページ上のどこにあっても表示されますが、アニメーションが完了した後にのみ表示されます。width:10000px; height:10000px;
next
next
更新されたデモはこちら
body { overflow:hidden; }
#hoverHelper {
width:0px;
height:0px;
z-index:1;
position:absolute;
margin-top:-1000px;
margin-left:-1000px;
animation: hhAnimation .001s 3s forwards;
}
#actualHover {
width:50px;
height:50px;
background:teal;
animation: yourAnimation 3s linear forwards;
}
#next {
z-index:2;
position:relative;
display: none;
}
#actualHover:hover ~ #next, #hoverHelper:hover ~ #next, #next:hover {
display:inline-block;
}
@keyframes yourAnimation {
0% { background:teal; }
100% { background: red; }
}
@keyframes hhAnimation {
0% { width:0px;
height:0px;
}
100% { width:10000px;
height:10000px;
}
}
そしてHTML(#next
他のものの後にあることを確認してください)
<div id='actualHover'></div>
<div id='hoverHelper'></div>
<a id='next'>Next</a>
また、小さな JavaScript を追加して、繰り返し使用できるようにし、アクセス方法を示しました。
ソリューションは完全にクロスブラウザでなければなりません。それについての唯一の否定的なことは、overflow:hidden
javascriptを使用して現在のウィンドウの高さ/幅を決定し、それをそれに設定する(サイズ変更を含む)または同様のものによってさらに最適化できる本体にあります