Abdulrahman Mushref
Abdulrahman Mushref

Reputation: 1005

CSS animation-delay timing

I took this example code from JSFiddle and played with it, but there is code confusing me

.backgroundimg {
    -webkit-background-size: cover;
  	-moz-background-size: cover;
  	-o-background-size: cover;
  	background-size: cover;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;

}

#back5 {
    background: url("http://duananhalotus.com/upload/album/0904234.jpg") no-repeat center fixed;
    z-index: -1;
}

#back4 {
    background: url("http://www.chinadaily.com.cn/world/images/attachement/jpg/site1/20120806/d4bed9d534551189e67329.jpg") no-repeat center fixed;
    z-index: -1;
}

#back3 {
    background: url("https://amazingslider.com/wp-content/uploads/2012/12/dandelion.jpg") no-repeat center fixed;
    z-index: -1;
}

#back2 {
    background: url("https://cdn.pixabay.com/photo/2013/04/06/11/50/image-editing-101040_960_720.jpg") no-repeat center fixed;
    z-index: -1;
}

#back1 {
    background: url("http://www.gettyimages.com/gi-resources/images/Embed/new/embed2.jpg") no-repeat center fixed;
    z-index: -1;
}

@keyframes backgroundchangeFadeInOut {
  0% {
    opacity:1;
  }
  17% {
    opacity:1;
  }
  25% {
    opacity:0;
  }
  92% {
    opacity:0;
  }
  100% {
    opacity:1;
  }
}

@-webkit-keyframes backgroundchangeFadeInOut {
  0% {
    opacity:1;
  }
  17% {
    opacity:1;
  }
  25% {
    opacity:0;
  }
  92% {
    opacity:0;
  }
  100% {
    opacity:1;
  }
}

#backgroundchange div:nth-of-type(1) {
  animation-delay: 8s;
  -webkit-animation-delay: 8s;
}
#backgroundchange div:nth-of-type(2) {
  animation-delay: 6s;
  -webkit-animation-delay: 6s;
}
#backgroundchange div:nth-of-type(3) {
  animation-delay: 4s;
  -webkit-animation-delay: 4s;
}
#backgroundchange div:nth-of-type(4) {
  animation-delay: 2s;
  -webkit-animation-delay: 2s;
}

#backgroundchange div:nth-of-type(5) {
  animation-delay: 0;
  -webkit-animation-delay: 0;
}

#backgroundchange div {
animation-name: backgroundchangeFadeInOut;
animation-timing-function: ease-in-out;
animation-iteration-count: infinite;
animation-duration: 8s;

-webkit-animation-name: backgroundchangeFadeInOut;
-webkit-animation-timing-function: ease-in-out;
-webkit-animation-iteration-count: infinite;
-webkit-animation-duration: 8s;

}
<div class="inner">
                <div id="backgroundchange">
                    <div class="backgroundimg" id="back1"></div>
                    <div class="backgroundimg" id="back2"></div>
                    <div class="backgroundimg" id="back3"></div>
                    <div class="backgroundimg" id="back4"></div>
                    <div class="backgroundimg" id="back5"></div>
                </div>
            </div>

It takes 2 seconds for each image to crossfade to the next, I tried changing it to 3 seconds by adding one second on each nth-of-type but didn't work. I need your help with this please!

Upvotes: 0

Views: 270

Answers (3)

Renzo Calla
Renzo Calla

Reputation: 7706

this is working with 3 seconds delay, consider changing also the webkit property..

.backgroundimg {
    -webkit-background-size: cover;
  	-moz-background-size: cover;
  	-o-background-size: cover;
  	background-size: cover;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;

}

#back5 {
    background: url("http://duananhalotus.com/upload/album/0904234.jpg") no-repeat center fixed;
    z-index: -1;
}

#back4 {
    background: url("http://www.chinadaily.com.cn/world/images/attachement/jpg/site1/20120806/d4bed9d534551189e67329.jpg") no-repeat center fixed;
    z-index: -1;
}

#back3 {
    background: url("https://amazingslider.com/wp-content/uploads/2012/12/dandelion.jpg") no-repeat center fixed;
    z-index: -1;
}

#back2 {
    background: url("https://cdn.pixabay.com/photo/2013/04/06/11/50/image-editing-101040_960_720.jpg") no-repeat center fixed;
    z-index: -1;
}

#back1 {
    background: url("http://www.gettyimages.com/gi-resources/images/Embed/new/embed2.jpg") no-repeat center fixed;
    z-index: -1;
}

@keyframes backgroundchangeFadeInOut {
  0% {
    opacity:1;
  }
  17% {
    opacity:1;
  }
  25% {
    opacity:0;
  }
  92% {
    opacity:0;
  }
  100% {
    opacity:1;
  }
}

@-webkit-keyframes backgroundchangeFadeInOut {
  0% {
    opacity:1;
  }
  17% {
    opacity:1;
  }
  25% {
    opacity:0;
  }
  92% {
    opacity:0;
  }
  100% {
    opacity:1;
  }
}

#backgroundchange div:nth-of-type(1) {
  animation-delay: 12s;
  -webkit-animation-delay: 12s;
}
#backgroundchange div:nth-of-type(2) {
  animation-delay: 9s;
  -webkit-animation-delay:9s;
}
#backgroundchange div:nth-of-type(3) {
  animation-delay: 6s;
  -webkit-animation-delay: 6s;
}
#backgroundchange div:nth-of-type(4) {
  animation-delay:3s;
  -webkit-animation-delay: 3s;
}

#backgroundchange div:nth-of-type(5) {
  animation-delay: 0;
  -webkit-animation-delay: 0;
}

#backgroundchange div {
animation-name: backgroundchangeFadeInOut;
animation-timing-function: ease-in-out;
animation-iteration-count: infinite;
animation-duration: 12s;

-webkit-animation-name: backgroundchangeFadeInOut;
-webkit-animation-timing-function: ease-in-out;
-webkit-animation-iteration-count: infinite;
-webkit-animation-duration: 12s;

}
<div class="inner">
                <div id="backgroundchange">
                    <div class="backgroundimg" id="back1"></div>
                    <div class="backgroundimg" id="back2"></div>
                    <div class="backgroundimg" id="back3"></div>
                    <div class="backgroundimg" id="back4"></div>
                    <div class="backgroundimg" id="back5"></div>
                </div>
            </div>

Upvotes: 1

Pete
Pete

Reputation: 58462

You need to increase your delays in increments of 3 starting with the last child at 0 and the first child at the last increment - below we go from o to 12

You then need to change the animation length to be as long as the longest delay

.backgroundimg {
    -webkit-background-size: cover;
  	-moz-background-size: cover;
  	-o-background-size: cover;
  	background-size: cover;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;

}

#back5 {
    background: url("http://duananhalotus.com/upload/album/0904234.jpg") no-repeat center fixed;
    z-index: -1;
}

#back4 {
    background: url("http://www.chinadaily.com.cn/world/images/attachement/jpg/site1/20120806/d4bed9d534551189e67329.jpg") no-repeat center fixed;
    z-index: -1;
}

#back3 {
    background: url("https://amazingslider.com/wp-content/uploads/2012/12/dandelion.jpg") no-repeat center fixed;
    z-index: -1;
}

#back2 {
    background: url("https://cdn.pixabay.com/photo/2013/04/06/11/50/image-editing-101040_960_720.jpg") no-repeat center fixed;
    z-index: -1;
}

#back1 {
    background: url("http://www.gettyimages.com/gi-resources/images/Embed/new/embed2.jpg") no-repeat center fixed;
    z-index: -1;
}

@keyframes backgroundchangeFadeInOut {
  0% {
    opacity:1;
  }
  17% {
    opacity:1;
  }
  25% {
    opacity:0;
  }
  92% {
    opacity:0;
  }
  100% {
    opacity:1;
  }
}

@-webkit-keyframes backgroundchangeFadeInOut {
  0% {
    opacity:1;
  }
  17% {
    opacity:1;
  }
  25% {
    opacity:0;
  }
  92% {
    opacity:0;
  }
  100% {
    opacity:1;
  }
}

#backgroundchange div:nth-of-type(1) {
  animation-delay: 12s;
  -webkit-animation-delay: 12s;
}
#backgroundchange div:nth-of-type(2) {
  animation-delay: 9s;
  -webkit-animation-delay: 9s;
}
#backgroundchange div:nth-of-type(3) {
  animation-delay: 6s;
  -webkit-animation-delay: 6s;
}
#backgroundchange div:nth-of-type(4) {
  animation-delay: 3s;
  -webkit-animation-delay: 3s;
}

#backgroundchange div:nth-of-type(5) {
  animation-delay: 0;
  -webkit-animation-delay: 0;
}

#backgroundchange div {
animation-name: backgroundchangeFadeInOut;
animation-timing-function: ease-in-out;
animation-iteration-count: infinite;
animation-duration: 12s;

-webkit-animation-name: backgroundchangeFadeInOut;
-webkit-animation-timing-function: ease-in-out;
-webkit-animation-iteration-count: infinite;
-webkit-animation-duration: 12s;

}
<div class="inner">
    <div id="backgroundchange">
        <div class="backgroundimg" id="back1"></div>
        <div class="backgroundimg" id="back2"></div>
        <div class="backgroundimg" id="back3"></div>
        <div class="backgroundimg" id="back4"></div>
        <div class="backgroundimg" id="back5"></div>
    </div>
</div>

Upvotes: 3

RacoonOnMoon
RacoonOnMoon

Reputation: 1586

You need to edit the animation-duration also to 12

.backgroundimg {
    -webkit-background-size: cover;
  	-moz-background-size: cover;
  	-o-background-size: cover;
  	background-size: cover;
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;

}

#back5 {
    background: url("http://duananhalotus.com/upload/album/0904234.jpg") no-repeat center fixed;
    z-index: -1;
}

#back4 {
    background: url("http://www.chinadaily.com.cn/world/images/attachement/jpg/site1/20120806/d4bed9d534551189e67329.jpg") no-repeat center fixed;
    z-index: -1;
}

#back3 {
    background: url("https://amazingslider.com/wp-content/uploads/2012/12/dandelion.jpg") no-repeat center fixed;
    z-index: -1;
}

#back2 {
    background: url("https://cdn.pixabay.com/photo/2013/04/06/11/50/image-editing-101040_960_720.jpg") no-repeat center fixed;
    z-index: -1;
}

#back1 {
    background: url("http://www.gettyimages.com/gi-resources/images/Embed/new/embed2.jpg") no-repeat center fixed;
    z-index: -1;
}

@keyframes backgroundchangeFadeInOut {
  0% {
    opacity:1;
  }
  17% {
    opacity:1;
  }
  25% {
    opacity:0;
  }
  92% {
    opacity:0;
  }
  100% {
    opacity:1;
  }
}

@-webkit-keyframes backgroundchangeFadeInOut {
  0% {
    opacity:1;
  }
  17% {
    opacity:1;
  }
  25% {
    opacity:0;
  }
  92% {
    opacity:0;
  }
  100% {
    opacity:1;
  }
}

#backgroundchange div:nth-of-type(1) {
  animation-delay: 12s;
  -webkit-animation-delay: 12s;
}
#backgroundchange div:nth-of-type(2) {
  animation-delay: 9s;
  -webkit-animation-delay: 9s;
}
#backgroundchange div:nth-of-type(3) {
  animation-delay: 6s;
  -webkit-animation-delay: 6s;
}
#backgroundchange div:nth-of-type(4) {
  animation-delay: 3s;
  -webkit-animation-delay: 3s;
}

#backgroundchange div:nth-of-type(5) {
  animation-delay: 0;
  -webkit-animation-delay: 0;
}

#backgroundchange div {
animation-name: backgroundchangeFadeInOut;
animation-timing-function: ease-in-out;
animation-iteration-count: infinite;
animation-duration: 12s;

-webkit-animation-name: backgroundchangeFadeInOut;
-webkit-animation-timing-function: ease-in-out;
-webkit-animation-iteration-count: infinite;
-webkit-animation-duration: 12s;

}
<div class="inner">
                <div id="backgroundchange">
                    <div class="backgroundimg" id="back1"></div>
                    <div class="backgroundimg" id="back2"></div>
                    <div class="backgroundimg" id="back3"></div>
                    <div class="backgroundimg" id="back4"></div>
                    <div class="backgroundimg" id="back5"></div>
                </div>
            </div>

Upvotes: 1

Related Questions