2013-10-13 60 views
0

我有一個橫幅,當我將鼠標移到它上面時,當鼠標退出時,橫幅回到它的原始位置,我想知道如何使它停在它的當前位置動畫後(我不想每次都重新設置)CSS3保存動畫後的位置

這是怎麼出招:

/*keyframe animations*/ 
.first:hover { 
    -webkit-animation: bannermove 30s linear infinite; 
     -moz-animation: bannermove 30s linear infinite; 
     -ms-animation: bannermove 30s linear infinite; 
     -o-animation: bannermove 30s linear infinite; 
      animation: bannermove 30s linear infinite; 
} 

@keyframes "bannermove" { 
0% { 
    margin-left: 0px; 
} 
100% { 
    margin-left: -2125px; 
} 

} 


@-webkit-keyframes "bannermove" { 
0% { 
    margin-left: 0px; 
} 
100% { 
    margin-left: -2125px; 
} 

} 
+0

它改變了,因爲在你的關鍵幀的0%0像素和100 %2125px。在你的動畫CSS中,你的迭代次數是無限的,所以它會持續重複0px到2125px – EasyBB

回答

-1
.first:hover { 
    -webkit-animation: bannermove 30s linear ; 
    -moz-animation: bannermove 30s linear ; 
    -ms-animation: bannermove 30s linear ; 
    -o-animation: bannermove 30s linear ; 
     animation: bannermove 30s linear 
    } 

放置無限您設置的迭代次數不斷回放反覆。取出無限將解決您的問題。

+0

它仍然會給我同樣的效果:/ – alaslipknot

+0

你想讓元素停留在鼠標退出時的確切位置橫幅?如果是這樣,我們可能需要JavaScript。如果不是,你只是希望元素移動,而你的鼠標結束並保持在-2125px? – EasyBB

+0

「你想讓元素停留在鼠標退出橫幅時的確切位置嗎?」 是的確切 – alaslipknot

1

有一對夫婦的事情要考慮:

  • 您可能需要徘徊另一個元素就像一個包含分區,它很難繼續當它熄滅屏幕元素懸停。
  • 添加一個animation fill mode,只要用戶繼續懸停,這將持續動畫的結束狀態。

Working Example

<div class="container"> 
    <div class="first"></div> 
</div> 

.container:hover .first{ 
    -webkit-animation: bannermove 30s linear both; 
    -moz-animation: bannermove 30s linear both; 
    -ms-animation: bannermove 30s linear both; 
    -o-animation: bannermove 30s linear both; 
    animation: bannermove 30s linear both; 
} 

@keyframes bannermove { 
    0% { 
     margin-left: 0px; 
    } 
    100% { 
     margin-left: -2125px; 
    } 
} 

如果需要動畫結束狀態的用戶不會再徘徊後,堅持你可能要考慮使用一個小腳本添加動畫通過添加類,像這樣:

Working Example 2

$('.first').mouseenter(function(){ 
    $('.first').addClass('banner'); 
}); 

.banner{ 
    -webkit-animation: bannermove 30s linear both; 
    -moz-animation: bannermove 30s linear both; 
    -ms-animation: bannermove 30s linear both; 
    -o-animation: bannermove 30s linear both; 
    animation: bannermove 30s linear both; 
} 

如果您需要有動畫暫停時,用戶不再徘徊,恢復再次徘徊時:

Working Example 3

$('.first').hover(function() { 
    $('.first').addClass('banner'); 
    $('.banner').css('animationPlayState', 'running'); 
}, 

function() { 
    $('.banner').css('animationPlayState', 'paused'); 
}); 
+0

做得非常好。希望我可以做更多的幫助,但目前只有電話。無論如何,我想知道是否想讓元素停留在它的位置上,我們立即將鼠標移出,如果在離開元素的當前幀處保留250px或其他任何值,則保留爲250px。 – EasyBB

+1

@EasyBB查看更新 – apaul

+0

幹得好。當用戶提供多個選項時,我喜歡它。現在是animationPlayState跨瀏覽器?看到這就是爲什麼我喜歡用香草做一些更高級的動畫,只是嘗試一下自己我不會太依賴css3直到它100%跨瀏覽器 – EasyBB