J'ai essayé de chercher sur Google et sur ce forum une solution à mon problème, mais sans succès jusqu'à présent. Je voudrais mettre en pause mon animation CSS3 (diaporama d'images) en cliquant sur une image et reprendre la même animation en cliquant sur une image.
Je sais comment mettre le diaporama en pause et j'ai également pu le reprendre une fois, mais il cesse de fonctionner si on essaie de le mettre en pause et de le reprendre plus d'une fois. Voici à quoi ressemble mon code :
<!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>
Je ne veux pas utiliser de bibliothèques JS (par exemple jQuery) ou toute autre solution externe.
Je pense que mes fonctions dans doStuff
sont toujours en cours et c'est pourquoi pause
y resume
ne fonctionne qu'une seule fois.
Existe-t-il un moyen d'effacer ces fonctions après les avoir cliquées une fois ? Ou bien est-ce que j'essaie de le faire d'une manière totalement erronée ? Toute aide est la bienvenue :)