I am trying to show 3 images (out of 12) at the same time using css animation. I would like to display the image 1-3 first, then 4-6, then 7-9, and then 10-12.
I still have this, but I canβt figure out how to use the: nth selector to display the next 3, hiding the rest.
This is more or less what I still have:
#crossfade > img { max-width: 30%; height: auto; opacity: 0; z-index: 0; -webkit-backface-visibility: hidden; animation: imageAnimation 30s linear infinite 0s; } #crossfade > img:nth-child(n+3) { animation-delay: 6s; } @keyframes imageAnimation { 0% { opacity: 0; animation-timing-function: ease-in; } 8% { opacity: 1; animation-timing-function: ease-out; } 17% { opacity: 1 } 25% { opacity: 0 } 100% { opacity: 0 } }
Example below [ or click here for jsfiddle ]
#crossfade { height: 185px; width: 100%; position: relative; } #crossfade > img { max-width: 30%; height: auto; opacity: 0; z-index: 0; -webkit-backface-visibility: hidden; -webkit-animation: imageAnimation 30s linear infinite 0s; -moz-animation: imageAnimation 30s linear infinite 0s; -o-animation: imageAnimation 30s linear infinite 0s; -ms-animation: imageAnimation 30s linear infinite 0s; animation: imageAnimation 30s linear infinite 0s; } #crossfade > img:nth-child(n+3) { -webkit-animation-delay: 6s; -moz-animation-delay: 6s; -o-animation-delay: 6s; -ms-animation-delay: 6s; animation-delay: 6s; } #crossfade > img:nth-child(n+3) { -webkit-animation-delay: 12s; -moz-animation-delay: 12s; -o-animation-delay: 12s; -ms-animation-delay: 12s; animation-delay: 12s; } #crossfade > img:nth-child(4) { -webkit-animation-delay: 18s; -moz-animation-delay: 18s; -o-animation-delay: 18s; -ms-animation-delay: 18s; animation-delay: 18s; } #crossfade > img:nth-child(5) { -webkit-animation-delay: 24s; -moz-animation-delay: 24s; -o-animation-delay: 24s; -ms-animation-delay: 24s; animation-delay: 24s; } @keyframes imageAnimation { 0% { opacity: 0; animation-timing-function: ease-in; } 8% { opacity: 1; animation-timing-function: ease-out; } 17% { opacity: 1 } 25% { opacity: 0 } 100% { opacity: 0 } }
<div id="crossfade"> <img src="http://dummyimage.com/120x185&text=Img 1" alt="Image 1"> <img src="http://dummyimage.com/120x185&text=Img 2" alt="Image 2"> <img src="http://dummyimage.com/120x185&text=Img 3" alt="Image 2"> <img src="http://dummyimage.com/120x185&text=Img 4" alt="Image 4"> <img src="http://dummyimage.com/120x185&text=Img 5" alt="Image 5"> <img src="http://dummyimage.com/120x185&text=Img 6" alt="Image 6"> <img src="http://dummyimage.com/120x185&text=Img 7" alt="Image 7"> <img src="http://dummyimage.com/120x185&text=Img 8" alt="Image 8"> <img src="http://dummyimage.com/120x185&text=Img 9" alt="Image 9"> <img src="http://dummyimage.com/120x185&text=Img 10" alt="Image 10"> <img src="http://dummyimage.com/120x185&text=Img 11" alt="Image 11"> <img src="http://dummyimage.com/120x185&text=Img 12" alt="Image 12"> </div>
source share