CSS幻灯片需要很长时间才能开始

问题描述 投票:0回答:1

我使用一个示例来创建纯CSS幻灯片。除了我有了新的幻灯片以外,所有工作都很好,行为得到了改变。在幻灯片从左到右移动之前,下一张要进入,然后慢慢跟随老的退出者。现在,它只是像le slide露出下面的另一个。我知道这是一个计时问题,但看不到如何计算。尝试使用4格,执行时间为28(4张幻灯片乘以7秒),然后加上第五张和35的执行时间(5张幻灯片乘以7秒),看看后面有什么内容。第一面要花很长时间才能启动并调试所有时间,我不知道为什么。


<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 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( 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>
css slideshow automatic-updates
1个回答
0
投票

我只是简单地将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>
© www.soinside.com 2019 - 2024. All rights reserved.