我有一个完整的图像背景幻灯片动画,可以正常工作到最后一张图像。动画到达最后一张图像时,它不会重新启动。

我设置了无限,但仍然无法正常工作。
如果我更改不透明度,则可以使用,但图像会变得混乱,效果也不佳。

如何固定css在图像之间以最小的不透明度每10s滑动一次,最后一个循环到动画结束时的第一个循环?

的CSS

ol,ul {
list-style:none;
}

.cb-slideshow,
.cb-slideshow:after {
position: fixed;
width: 100%;
height: 100%;
top: 0px;
left: 0px;
z-index: 0;
}
.cb-slideshow:after {
content: '';
background: transparent url(../images/pattern.png) repeat top left;
}
.cb-slideshow li span {
width: 100%;
height: 100%;
position: absolute;
top: 0px;
left: 0px;
color: transparent;
background-size: cover;
background-position: 50% 50%;
background-repeat: none;
opacity: 0;
z-index: 0;
-webkit-backface-visibility: hidden;
-webkit-animation: imageAnimation 60s linear infinite 0s;
-moz-animation: imageAnimation 60s linear infinite 0s;
-o-animation: imageAnimation 60s linear infinite 0s;
-ms-animation: imageAnimation 60s linear infinite 0s;
animation: imageAnimation 60s linear infinite 0s;
}
.cb-slideshow li:nth-child(1) span {
background-image: url(../images/slide-1.jpg)
}
.cb-slideshow li:nth-child(2) span {
background-image: url(../images/slide-2.jpg);
-webkit-animation-delay: 10s;
-moz-animation-delay: 10s;
-o-animation-delay: 10s;
-ms-animation-delay: 10s;
animation-delay: 10s;
}
.cb-slideshow li:nth-child(3) span {
background-image: url(../images/slide-3.jpg);
-webkit-animation-delay: 20s;
-moz-animation-delay: 20s;
-o-animation-delay: 20s;
-ms-animation-delay: 20s;
animation-delay: 20s;
}
.cb-slideshow li:nth-child(4) span {
background-image: url(../images/slide-1.jpg);
-webkit-animation-delay: 30s;
-moz-animation-delay: 30s;
-o-animation-delay: 30s;
-ms-animation-delay: 30s;
animation-delay: 30s;
}
.cb-slideshow li:nth-child(5) span {
background-image: url(../images/slide-2.jpg);
-webkit-animation-delay: 40s;
-moz-animation-delay: 40s;
-o-animation-delay: 40s;
-ms-animation-delay: 40s;
animation-delay: 40s;
}
.cb-slideshow li:nth-child(6) span {
background-image: url(../images/slide-3.jpg);
-webkit-animation-delay: 50s;
-moz-animation-delay: 50s;
-o-animation-delay: 50s;
-ms-animation-delay: 50s;
animation-delay: 50s;
}

@keyframes imageAnimation {
0% { opacity: 0;
    animation-timing-function: ease-in; }
25% { opacity: 1;
    animation-timing-function: ease-out; }
50% { opacity: 1 }
75% { opacity: 0 }
100% { opacity: 0 }
}
@-webkit-keyframes imageAnimation {
0% { opacity: 0;
-webkit-animation-timing-function: ease-in; }
25% { opacity: 1;
     -webkit-animation-timing-function: ease-out; }
50% { opacity: 1 }
75% { opacity: 0 }
100% { opacity: 0 }
}
@-moz-keyframes imageAnimation {
0% { opacity: 0;
-moz-animation-timing-function: ease-in; }
25% { opacity: 1;
     -moz-animation-timing-function: ease-out; }
50% { opacity: 1 }
75% { opacity: 0 }
100% { opacity: 0 }
}
@-o-keyframes imageAnimation {
0% { opacity: 0;
-o-animation-timing-function: ease-in; }
25% { opacity: 1;
     -o-animation-timing-function: ease-out; }
50% { opacity: 1 }
75% { opacity: 0 }
100% { opacity: 0 }
}
@-ms-keyframes imageAnimation {
0% { opacity: 0;
-ms-animation-timing-function: ease-in; }
25% { opacity: 1;
     -ms-animation-timing-function: ease-out; }
50% { opacity: 1 }
75% { opacity: 0 }
100% { opacity: 0 }
}


.no-cssanimations .cb-slideshow li span{
  opacity: 1;
}

@media screen and (max-width: 1140px) {
 .cb-slideshow li div h3 { font-size: 140px }
}
@media screen and (max-width: 600px) {
 .cb-slideshow li div h3 { font-size: 80px }
}


的HTML

<ul class="cb-slideshow">
  <li><span></span></li>
  <li><span></span></li>
  <li><span></span></li>
  <li><span></span></li>
  <li><span></span></li>
  <li><span></span></li>
</ul>

最佳答案

它工作正常。使用循环进行动画处理时,您已经为动画设置了较长的间隔,大约60s,50s等。我认为这就是为什么您根本看不到循环的原因...因此请更改动画,例如6s或10s作为描述。它工作正常



ol,ul {
list-style:none;
}

.cb-slideshow,
.cb-slideshow:after {
position: fixed;
width: 100%;
height: 100%;
top: 0px;
left: 0px;
z-index: 0;
}
.cb-slideshow:after {
content: '';
background: transparent url(../images/pattern.png) repeat top left;
}
.cb-slideshow li span {
width: 100%;
height: 100%;
position: absolute;
top: 0px;
left: 0px;
color: transparent;
background-size: cover;
background-position: 50% 50%;
background-repeat: none;
opacity: 0;
z-index: 0;
-webkit-backface-visibility: hidden;
-webkit-animation: imageAnimation 6s linear infinite 0s;
-moz-animation: imageAnimation 6s linear infinite 0s;
-o-animation: imageAnimation 6s linear infinite 0s;
-ms-animation: imageAnimation 6s linear infinite 0s;
animation: imageAnimation 6s linear infinite 0s;
}
.cb-slideshow li:nth-child(1) span {
background-image: url('https://placeholdit.imgix.net/~text?txtsize=77&bg=ff0000&txtclr=ffffff&txt=1230x373&w=1230&h=373')
}
.cb-slideshow li:nth-child(2) span {
background-image: url('https://placeholdit.imgix.net/~text?txtsize=77&bg=00ff00&txtclr=ffffff&txt=1230x373&w=1230&h=373');
-webkit-animation-delay: 1s;
-moz-animation-delay: 1s;
-o-animation-delay: 1s;
-ms-animation-delay: 1s;
animation-delay: 1s;
}
.cb-slideshow li:nth-child(3) span {
background-image: url('https://placeholdit.imgix.net/~text?txtsize=77&bg=0000ff&txtclr=ffffff&txt=1230x373&w=1230&h=373');
-webkit-animation-delay: 2s;
-moz-animation-delay: 2s;
-o-animation-delay: 2s;
-ms-animation-delay: 2s;
animation-delay: 2s;
}
.cb-slideshow li:nth-child(4) span {
background-image: url('https://placeholdit.imgix.net/~text?txtsize=77&bg=ffff00&txtclr=ffffff&txt=1230x373&w=1230&h=373');
-webkit-animation-delay: 3s;
-moz-animation-delay: 3s;
-o-animation-delay: 3s;
-ms-animation-delay: 3s;
animation-delay: 3s;
}
.cb-slideshow li:nth-child(5) span {
background-image: url('https://placeholdit.imgix.net/~text?txtsize=77&bg=00ffff&txtclr=ffffff&txt=1230x373&w=1230&h=373');
-webkit-animation-delay: 4s;
-moz-animation-delay: 4s;
-o-animation-delay: 4s;
-ms-animation-delay: 4s;
animation-delay: 4s;
}
.cb-slideshow li:nth-child(6) span {
background-image: url('https://placeholdit.imgix.net/~text?txtsize=77&bg=000000&txtclr=ffffff&txt=1230x373&w=1230&h=373');
-webkit-animation-delay: 5s;
-moz-animation-delay: 5s;
-o-animation-delay: 5s;
-ms-animation-delay: 5s;
animation-delay: 5s;
}

@keyframes imageAnimation {
0% { opacity: 0;
    animation-timing-function: ease-in; }
25% { opacity: 1;
    animation-timing-function: ease-out; }
50% { opacity: 1 }
75% { opacity: 0 }
100% { opacity: 0 }
}
@-webkit-keyframes imageAnimation {
0% { opacity: 0;
-webkit-animation-timing-function: ease-in; }
25% { opacity: 1;
     -webkit-animation-timing-function: ease-out; }
50% { opacity: 1 }
75% { opacity: 0 }
100% { opacity: 0 }
}
@-moz-keyframes imageAnimation {
0% { opacity: 0;
-moz-animation-timing-function: ease-in; }
25% { opacity: 1;
     -moz-animation-timing-function: ease-out; }
50% { opacity: 1 }
75% { opacity: 0 }
100% { opacity: 0 }
}
@-o-keyframes imageAnimation {
0% { opacity: 0;
-o-animation-timing-function: ease-in; }
25% { opacity: 1;
     -o-animation-timing-function: ease-out; }
50% { opacity: 1 }
75% { opacity: 0 }
100% { opacity: 0 }
}
@-ms-keyframes imageAnimation {
0% { opacity: 0;
-ms-animation-timing-function: ease-in; }
25% { opacity: 1;
     -ms-animation-timing-function: ease-out; }
50% { opacity: 1 }
75% { opacity: 0 }
100% { opacity: 0 }
}


.no-cssanimations .cb-slideshow li span{
  opacity: 1;
}

@media screen and (max-width: 1140px) {
 .cb-slideshow li div h3 { font-size: 140px }
}
@media screen and (max-width: 600px) {
 .cb-slideshow li div h3 { font-size: 80px }
}

<ul class="cb-slideshow">
  <li><span></span></li>
  <li><span></span></li>
  <li><span></span></li>
  <li><span></span></li>
  <li><span></span></li>
  <li><span></span></li>
</ul>

07-25 23:05
查看更多