我得到了一个 css 滚动幻灯片的代码,在 Naren Murali 的帮助下,我能够修改我的 14 张图片,基于仅使用 6 张的演示。但是,唯一的问题是我不知道如何修改关键帧动画,使第一张和最后一张图像相同,从而实现从节目结束到下一次迭代的无缝过渡。
如果有人能向我解释如何实现这一点,我将不胜感激。
谢谢。
html {
background-color: white;
}
body {
width: 1300px;
margin: 0 auto 0;
}
#container {
width: 500px;
overflow: hidden;
margin: 50px auto;
background: white;
}
.photobanner {
height: 270px;
width: 6748px;
margin-bottom: 80px;
font-size:0px;
}
img{
margin-right:2px;
}
.flex-container {
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
margin-top: 30px;
}
.first {
-webkit-animation: bannermove 60s linear infinite;
-moz-animation: bannermove 60s linear infinite;
-ms-animation: bannermove 60s linear infinite;
-o-animation: bannermove 60s linear infinite;
animation: bannermove 60s linear infinite;
}
@keyframes "bannermove" {
0% {
margin-left: 0px;
}
100% {
margin-left: -6268px;
}
}
@-moz-keyframes bannermove {
0% {
margin-left: 0px;
}
100% {
margin-left: -6268px;
}
}
@-webkit-keyframes "bannermove" {
0% {
margin-left: 0px;
}
100% {
margin-left: -6268px;
}
}
@-ms-keyframes "bannermove" {
0% {
margin-left: 0px;
}
100% {
margin-left: -6268px;
}
}
@-o-keyframes "bannermove" {
0% {
margin-left: 0px;
}
100% {
margin-left: -6268px;
}
}
img{
margin-right:2px;
}
<header>
</header>
<section class="flex-container">
<div id="container">
<!-- Each image is 480px by 270px -->
<div class="photobanner">
<img class="first" src="https://www.bartonlewis.com/_imagesfilm/scroll_blue.jpg" alt="blue" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_23rd_st.jpg" alt="23rd st" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_broken_guru.jpg" alt="broken guru" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_church_ave.jpg" alt="church ave" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_nose.jpg" alt="nose" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_pants.jpg" alt="pants" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_i_will_miss_you.jpg" alt="i will miss you" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_network_reality_stars.jpg" alt="network reality all stars" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_kline.jpg" alt="kline" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_queen.jpg" alt="queen" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_water.jpg" alt="water" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_swirls.jpg" alt="swirls" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_robins_egg.jpg" alt="robins egg" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_ports.jpg" alt="ports" />
</div>
</div>
</section>
最佳答案
我回到演示并弄明白了。我在 14 个完整周期后重复了前 4 张图像。我制作了 .container 1000px 宽和 .photobanner 8640px 宽(480px(图像宽度)x 18)。然后我将边距设置为负值以将图像行向左移动足够远,以便第一张图像的第二次迭代占据初始位置。由于在演示中这个数字是 -2125,每张图像的宽度为 350px,而 2125/350 = 6 是离散图像的数量,我将 14 张离散图像乘以 480 = 6720。这几乎对齐但需要调整。左边距为 -6745,运行非常流畅。
<!DOCTYPE HTML>
<html>
<head>
<style>
.flex-container {
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
justify-content: center;
}
.flex-container_1 {
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
width: 1200px;
justify-content: center;
margin: 0 auto 0;
}
.container {
width: 1000px;
overflow: hidden;
margin: 50px auto;
background: white;
}
.photobanner {
display: flex;
flex-wrap: nowrap;
height: 270px;
width: 8640px;
margin-bottom: 20px;
font-size:0px;
}
img{
margin-right:2px;
}
.first {
-webkit-animation: bannermove 60s linear infinite;
-moz-animation: bannermove 60s linear infinite;
-ms-animation: bannermove 60s linear infinite;
-o-animation: bannermove 60s linear infinite;
animation: bannermove 60s linear infinite;
}
@keyframes "bannermove" {
0% {
margin-left: 0px;
}
100% {
margin-left: -6745px;
}
}
@-moz-keyframes bannermove {
0% {
margin-left: 0px;
}
100% {
margin-left: -6745px;
}
}
@-webkit-keyframes "bannermove" {
0% {
margin-left: 0px;
}
100% {
margin-left: -6745px;
}
}
@-ms-keyframes "bannermove" {
0% {
margin-left: 0px;
}
100% {
margin-left: -6745px;
}
}
@-o-keyframes "bannermove" {
0% {
margin-left: 0px;
}
100% {
margin-left: -6745px;
}
}
img{
margin-right:2px;
}
</style>
</head>
<section class="flex-container_1">
<div class="container">
<!-- Each image is 480px by 270px -->
<div class="photobanner">
<img class="first" src="https://www.bartonlewis.com/_imagesfilm/scroll_blue.jpg" alt="blue" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_23rd_st.jpg" alt="23rd st" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_broken_guru.jpg" alt="broken guru" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_church_ave.jpg" alt="church ave" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_nose.jpg" alt="nose" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_pants.jpg" alt="pants" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_i_will_miss_you.jpg" alt="i will miss you" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_network_reality_stars.jpg" alt="network reality all stars" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_kline.jpg" alt="kline" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_queen.jpg" alt="queen" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_water.jpg" alt="water" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_swirls.jpg" alt="swirls" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_robins_egg.jpg" alt="robins egg" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_ports.jpg" alt="ports" />
<img class="first" src="https://www.bartonlewis.com/_imagesfilm/scroll_blue.jpg" alt="blue" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_23rd_st.jpg" alt="23rd st" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_broken_guru.jpg" alt="broken guru" />
<img src="https://www.bartonlewis.com/_imagesfilm/scroll_church_ave.jpg" alt="church ave" />
</div>
<p>film stills from "wall cuts, train stations, New York City" (2016)</p>
</div>
</section>
</html>
关于css - 仅使用 css 在滚动幻灯片横幅中无缝循环图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46518710/