CSS幻灯片放映启动时间过长



我正在使用一个创建纯CSS幻灯片的示例。除了添加新幻灯片时行为发生变化外,所有操作都很好。之前,幻灯片从左向右移动,下一张要慢慢进入。现在它有点像幻灯片展示了下面的另一个。

我知道这是一个时间问题,但我不知道如何计算。尝试使用5张幻灯片的原始代码,执行时间为28(4张幻灯片各乘以7秒(,然后查看转换。它没有显示第五张幻灯片。现在,要添加第五张幻灯片,请将执行时间更改为35(5张幻灯片各乘以7秒(,并查看附加内容。第五张幻灯片显示,但幻灯片之间的转换与时间为28的测试不同。第一支球队的首发时间太长,这打乱了剩下的时间,我不知道为什么。

<html>
<head>
<style>
*,
*::before,
*::after { box-sizing: border-box; }
html,
body {
display: flex;
align-items: center;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
background-color: #3c3c3c;
}
.card {
position: relative;  
width: 700px;
height: 400px;
overflow: hidden;
border-radius: 5px;
box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.3);
}
.card::after {
content: '';
position: absolute;
left: 0;
top: 0;
z-index: 900;
display: block;
width: 100%;
height: 100%;
background-color: rgba(140, 22, 115, 0.2);
}
.card_part {
position: absolute;
top: 0;
left: 0;
z-index: 7;
display: flex;
align-items: center;
width: 100%;
height: 100%;  
transform: translateX( 700px );
background-image: url( http://www.cosat.biz/fichiers/img/Img1.png );  
animation: opaqTransition 28s cubic-bezier(0, 0, 0, 0.97) infinite;
/* change to 35 for 5 slides*/
}
.card_part.card_part-two {
z-index: 6;
background-image: url( http://www.cosat.biz/fichiers/img/Img2.png );
animation-delay: 7s;
}
.card_part.card_part-three {
z-index: 5;
background-image: url( http://www.cosat.biz/fichiers/img/Img3.png );
animation-delay: 14s;
}
.card_part.card_part-four {
z-index: 4;
background-image: url( http://www.cosat.biz/fichiers/img/Img4.png );
animation-delay: 21s;
}
.card_part.card_part-five {
z-index: 3;
background-image: url( http://www.cosat.biz/fichiers/img/Img5.png );
animation-delay: 28s;
}
@keyframes opaqTransition {
3% { transform: translateX( 0 ); }
25% { transform: translateX( 0 ); }
28% { transform: translateX( -700px ); }
100% { transform: translateX( -700px ); }
}
</style>
</head>
<body>
<!-- Slideshow container -->
<div class="card">
<div class="card_part card_part-one"></div> 
<!-- Photo 2 -->
<div class="card_part card_part-two"></div>
<!-- Photo 3 -->
<div class="card_part card_part-three"></div>
<!-- Photo 4 -->
<div class="card_part card_part-four"></div>
<!-- Photo 5 -->
<div class="card_part card_part-five"></div>
</div>
</body>
</html>

我只是简单地将animation时间更改为5s,一切都快了很多。你可以根据自己的需要改变时间。

<html>
<head>
<style>
*,
*::before,
*::after { box-sizing: border-box; }
html,
body {
display: flex;
align-items: center;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
background-color: #3c3c3c;
}
.card {
position: relative;  
width: 700px;
height: 400px;
overflow: hidden;
border-radius: 5px;
box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.3);
}
.card::after {
content: '';
position: absolute;
left: 0;
top: 0;
z-index: 900;
display: block;
width: 100%;
height: 100%;
background-color: rgba(140, 22, 115, 0.2);
}
.card_part {
position: absolute;
top: 0;
left: 0;
z-index: 7;
display: flex;
align-items: center;
width: 100%;
height: 100%;  
transform: translateX( 700px );
background-image: url( https://github.com/Flat-Pixels/assets_hosting/blob/master/picture_slides/1.jpg?raw=true );  
animation: opaqTransition 5s cubic-bezier(0, 0, 0, 0.97) infinite;
/* change to 35 for 5 slides*/
}
.card_part.card_part-two {
z-index: 6;
background-image: url( https://github.com/Flat-Pixels/assets_hosting/blob/master/picture_slides/2.jpg?raw=true );
animation-delay: 7s;
}
.card_part.card_part-three {
z-index: 5;
background-image: url( https://github.com/Flat-Pixels/assets_hosting/blob/master/picture_slides/3.jpg?raw=true );
animation-delay: 14s;
}
.card_part.card_part-four {
z-index: 4;
background-image: url( https://github.com/Flat-Pixels/assets_hosting/blob/master/picture_slides/4.jpg?raw=true );
animation-delay: 21s;
}
.card_part.card_part-five {
z-index: 4;
background-image: url( https://github.com/Flat-Pixels/assets_hosting/blob/master/picture_slides/2.jpg?raw=true );
animation-delay: 21s;
}
@keyframes opaqTransition {
3% { transform: translateX( 0 ); }
25% { transform: translateX( 0 ); }
28% { transform: translateX( -700px ); }
100% { transform: translateX( -700px ); }
}
</style>
</head>
<body>
<!-- Slideshow container -->
<div class="card">
<div class="card_part card_part-one"></div> 
<!-- Photo 2 -->
<div class="card_part card_part-two"></div>
<!-- Photo 3 -->
<div class="card_part card_part-three"></div>
<!-- Photo 4 -->
<div class="card_part card_part-four"></div>
<!-- Photo 5 -->
<!-- div class="card_part card_part-five" --></div>
</div>
</body>
</html>

最新更新