我試過谷歌,從這個論壇看我的問題的解決方案,但沒有運氣到目前爲止。我想通過單擊圖片來暫停我的CSS3動畫(圖像幻燈片放映),並通過單擊圖片恢復到相同的動畫。如何使用JavaScript暫停和恢復CSS3動畫?
我知道如何暫停幻燈片放映,並且我也能夠恢復一次,但如果嘗試暫停和恢復一次以上,它就會停止工作。這裏是我的代碼看起來像:
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
.pic {
position: absolute;
opacity: 0;
}
#pic1 {
-webkit-animation: pic1 4s infinite linear;
}
#pic2 {
-webkit-animation: pic2 4s infinite linear;
}
@-webkit-keyframes pic1 {
0% {opacity: 0;}
5% {opacity: 1;}
45% {opacity: 1;}
50% {opacity: 0;}
100% {opacity: 0;}
}
@-webkit-keyframes pic2 {
0% {opacity: 0;}
50% {opacity: 0;}
55% {opacity: 1;}
95% {opacity: 1;}
100% {opacity: 0;}
}
</style>
<script type="text/javascript">
function doStuff(){
var pic1 = document.getElementById("pic1");
var pic2 = document.getElementById("pic2");
pic1.style.webkitAnimationPlayState="paused";
pic2.style.webkitAnimationPlayState="paused";
pic1.onclick = function(){
pic1.style.webkitAnimationPlayState="running";
pic2.style.webkitAnimationPlayState="running";
}
pic2.onclick = function(){
pic1.style.webkitAnimationPlayState="running";
pic2.style.webkitAnimationPlayState="running";
}
}
</script>
</head>
<body>
<img id="pic1" class="pic" src="photo1.jpg" />
<img id="pic2" class="pic" src="photo2.jpg" onclick="doStuff()" />
</body>
</html>
我不希望使用任何JS庫(如jQuery的)或任何其他外部解決方案。
我的猜測是doStuff
函數中的函數仍在運行,這就是爲什麼pause
和resume
只能運行一次。
有沒有辦法在我點擊一次後清除這些功能?還是我想以完全錯誤的方式做到這一點?幫助表示讚賞。 :)
這個評論來得有點遲,但是謝謝你!它解決了這個問題。 – nqw1 2011-08-09 08:31:46