任何人都可以帮助我,或者至少告诉我如何在这个纯 CSS 幻灯片中添加 2 张幻灯片吗?
这是原始链接:https://www.cssscript.com/pure-css-background-slideshow-ken-burns-effect/
目前仅支持 4 张幻灯片。
我想添加幻灯片 5 和幻灯片 6。
我遇到困难的部分是“CSS 关键帧中的 Ken Burns 效果”
kenburns-1 { 0% {
opacity: 1;
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
1.5625% {
opacity: 1;
}
23.4375% {
opacity: 1;
}
26.5625% {
opacity: 0;
-webkit-transform: scale(1);
transform: scale(1);
}
100% {
opacity: 0;
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
98.4375% {
opacity: 0;
-webkit-transform: scale(1.21176);
transform: scale(1.21176);
}
100% {
opacity: 1;
}
}
@keyframes
kenburns-1 { 0% {
opacity: 1;
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
1.5625% {
opacity: 1;
}
23.4375% {
opacity: 1;
}
26.5625% {
opacity: 0;
-webkit-transform: scale(1);
transform: scale(1);
}
100% {
opacity: 0;
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
98.4375% {
opacity: 0;
-webkit-transform: scale(1.21176);
transform: scale(1.21176);
}
100% {
opacity: 1;
}
}
@-webkit-keyframes
kenburns-2 { 23.4375% {
opacity: 1;
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
26.5625% {
opacity: 1;
}
48.4375% {
opacity: 1;
}
51.5625% {
opacity: 0;
-webkit-transform: scale(1);
transform: scale(1);
}
100% {
opacity: 0;
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
}
@keyframes
kenburns-2 { 23.4375% {
opacity: 1;
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
26.5625% {
opacity: 1;
}
48.4375% {
opacity: 1;
}
51.5625% {
opacity: 0;
-webkit-transform: scale(1);
transform: scale(1);
}
100% {
opacity: 0;
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
}
@-webkit-keyframes
kenburns-3 { 48.4375% {
opacity: 1;
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
51.5625% {
opacity: 1;
}
73.4375% {
opacity: 1;
}
76.5625% {
opacity: 0;
-webkit-transform: scale(1);
transform: scale(1);
}
100% {
opacity: 0;
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
}
@keyframes
kenburns-3 { 48.4375% {
opacity: 1;
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
51.5625% {
opacity: 1;
}
73.4375% {
opacity: 1;
}
76.5625% {
opacity: 0;
-webkit-transform: scale(1);
transform: scale(1);
}
100% {
opacity: 0;
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
}
@-webkit-keyframes
kenburns-4 { 73.4375% {
opacity: 1;
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
76.5625% {
opacity: 1;
}
98.4375% {
opacity: 1;
}
100% {
opacity: 0;
-webkit-transform: scale(1);
transform: scale(1);
}
}
@keyframes
kenburns-4 { 73.4375% {
opacity: 1;
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
76.5625% {
opacity: 1;
}
98.4375% {
opacity: 1;
}
100% {
opacity: 0;
-webkit-transform: scale(1);
transform: scale(1);
}
}
首先你需要清理代码。您可以摆脱所有
-webkit
属性,2024 年不再需要它们。
另一个令人困惑的部分是所有的小数百分比。不幸的是,如果没有分数,100 不能分为 6,所以我选择在 16% 的时间显示第一张和第四张幻灯片,在 17% 的时间显示其他四张幻灯片,总共 100%。所以我的时间线是这样的,在幻灯片之间提供 3% 的交叉淡入淡出:
.slideshow {
position: absolute;
width: 100vw;
height: 100vh;
overflow: hidden;
}
.slideshow-image {
position: absolute;
width: 100%;
height: 100%;
background: no-repeat 50% 50%;
background-size: cover;
animation-name: kenburns;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-duration: 24s;
animation-delay: 3s;
opacity: 0;
transform: scale(1.2);
}
.slideshow-image:nth-child(1) {
animation-name: kenburns-1;
z-index: 5;
}
.slideshow-image:nth-child(2) {
animation-name: kenburns-2;
z-index: 4;
}
.slideshow-image:nth-child(3) {
animation-name: kenburns-3;
z-index: 3;
}
.slideshow-image:nth-child(4) {
animation-name: kenburns-4;
z-index: 2;
}
.slideshow-image:nth-child(5) {
animation-name: kenburns-5;
z-index: 1;
}
.slideshow-image:nth-child(6) {
animation-name: kenburns-6;
z-index: 0;
opacity: 1;
}
@keyframes kenburns-1 {
3% {
opacity: 1;
}
16% {
opacity: 1;
}
19% {
opacity: 0;
transform: scale(1);
}
}
@keyframes kenburns-2 {
16% {
transform: scale(1.2);
}
19% {
opacity: 1;
}
33% {
opacity: 1;
}
36% {
opacity: 0;
transform: scale(1);
}
}
@keyframes kenburns-3 {
33% {
transform: scale(1.2);
}
36% {
opacity: 1;
}
50% {
opacity: 1;
}
53% {
opacity: 0;
transform: scale(1);
}
}
@keyframes kenburns-4 {
50% {
transform: scale(1.2);
}
53% {
opacity: 1;
}
66% {
opacity: 1;
}
69% {
opacity: 0;
transform: scale(1);
}
}
@keyframes kenburns-5 {
66% {
transform: scale(1.2);
}
69% {
opacity: 1;
}
83% {
opacity: 1;
}
85% {
opacity: 0;
transform: scale(1);
}
}
@keyframes kenburns-6 {
83% {
transform: scale(1.2);
}
100% {
transform: scale(1);
}
}
h1 {
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate3d(-50%, -50%, 0);
transform: translate3d(-50%, -50%, 0);
z-index: 99;
text-align: center;
font-family: 'Roboto', sans-serif;
font-weight: 300;
text-transform: uppercase;
background-color: rgba(255, 255, 255, 0.75);
box-shadow: 0 1em 2em -1em rgba(0, 0, 0, 0.5);
padding: 1em 2em;
line-height: 1.5;
}
<h1>Background Slideshow With Ken Burns Effect Demo</h1>
<div class="slideshow">
<div class="slideshow-image" style="background-image: url('https://unsplash.it/1600/1400?image=492')"></div>
<div class="slideshow-image" style="background-image: url('https://unsplash.it/1600/1400?image=487')"></div>
<div class="slideshow-image" style="background-image: url('https://unsplash.it/1600/1400?image=483')"></div>
<div class="slideshow-image" style="background-image: url('https://unsplash.it/1600/1400?image=478')"></div>
<div class="slideshow-image" style="background-image: url('https://unsplash.it/1600/1400?image=201')"></div>
<div class="slideshow-image" style="background-image: url('https://unsplash.it/1600/1400?image=202')"></div>
</div>