經過幾小時的擺弄和a little help from some friends我能夠想出比以前更好的解決方案。該方法涉及在從擴展到width:10000px; height:10000px;
的懸停元素之前使用透明元素,並觸發與畫廊相同的懸停事件以顯示next
元素。無論鼠標位於頁面上何處,只有在動畫完成後,纔會使用此方法顯示next
。
Updated Demo Here
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確定當前的窗口高度/寬度並將其設置爲(包括調整大小)或類似的東西來進一步優化
請發佈您的代碼。 – j08691
重複? http://stackoverflow.com/questions/11074815/jquery-trigger-hover-on-anchor – pbenard
您是否在尋找[this](http://stackoverflow.com/questions/6222724/send-hover-event-programmatically) ? – Harry