私はGoogleにこの問題の解決策を見てきましたが、これまでのところ運がありません。画像をクリックしてCSS3アニメーション(画像スライドショー)を一時停止し、画像をクリックして同じアニメーションに戻したいと思います。JavaScriptを使用してCSS3アニメーションを一時停止して再開する方法は?
私はスライドショーを一時停止する方法を知っていますし、一度再開することもできましたが、一時停止して複数回再開しようとすると動作を停止します。私は、任意のJSライブラリ(例えば、jQueryの)または他の外部のソリューションを使用したくない
<!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>
:ここに私のコードはどのように見えるかです。
私の推測では、doStuff
機能の中の私の機能はまだ実行されており、その理由はpause
とが一度しか働かないということです。
これらの機能を1回クリックした後にクリアする方法はありますか?あるいは私はこれを全く間違ったやり方でしようとしていますか?ヘルプは高く評価されます。 :)ここで
このコメントは少し遅れていますが、これはありがとうございます!それは問題を解決しました。 – nqw1