Joe
Joe

Reputation: 1055

Pure CSS on hover stop animation

I need to stop animation on hover for the following Codepen project.

I though that adding

.photo:hover{
animation-play-state:paused;
-webkit-animation-play-state:paused;
}

could be enough, but it works only for visible image while for other three animation continues in background.

how can I solve?

Thanks for reading

Upvotes: 2

Views: 2710

Answers (1)

Michael Coker
Michael Coker

Reputation: 53664

You should use the :hover pseudo class on .container instead, then pause the animation on all of .photo

body {
  background: #000;
}

.container {
  margin: 50px auto;
  width: 500px;
  height: 300px;
  overflow: hidden;
  border: 10px solid;
  border-top-color: #856036;
  border-left-color: #5d4426;
  border-bottom-color: #856036;
  border-right-color: #5d4426;
  position: relative;
}

.photo {
  position: absolute;
  animation: round 16s infinite;
  opacity: 0;
}

@keyframes round {
  25% {
    opacity: 1;
  }
  40% {
    opacity: 0;
  }
}
img:nth-child(1) {
  animation-delay: 12s;
}

img:nth-child(2) {
  animation-delay: 8s;
}

img:nth-child(3) {
  animation-delay: 4s;
}

img:nth-child(4) {
  animation-delay: 0s;
}
.container:hover .photo {
animation-play-state:paused;
-webkit-animation-play-state:paused;
}
<div class="container">
  <img class='photo'  src="http://farm9.staticflickr.com/8320/8035372009_7075c719d9.jpg" alt="" />
  <img class='photo'  src="http://farm9.staticflickr.com/8517/8562729616_35b1384aa1.jpg" alt="" />
  <img class='photo'  src="http://farm9.staticflickr.com/8465/8113424031_72048dd887.jpg" alt="" />
  <img class='photo'  src="http://farm9.staticflickr.com/8241/8562523343_9bb49b7b7b.jpg" alt="" />

</div>

Upvotes: 3

Related Questions