css实现无缝切换跑马灯样式
# 需求
实现跑马灯样式,多张图片从左往右依次循环播放,播放完毕后从第一张继续播放
# 演示
# 实现
公式为 子元素宽 * 一屏展示子元素的宽(也就是 父元素宽 / 子元素宽)
比如下面例子 子元素宽200px * 一屏展示子元素的宽 ( 父元素宽 / 子元素宽) 800/200 =4
也就是 200*4 = 800
800作为移动的距离,然后再重新从第一个元素开始,这样从视觉上看,就是无缝切换
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
.box{
width: 800px;
overflow: hidden;
}
.card-box{
display: flex;
animation: move 5s linear infinite backwards;
}
.card{
border: 1px solid sienna;
display: block;
width: 200px;
height: 100px;
flex-shrink: 0;
}
@keyframes move {
0% {
transform: translateX(0);
}
100% {
transform: translateX(-800px);
}
}
</style>
<body>
<div class="box">
<div class="card-box">
<div class="card">
1
</div>
<div class="card">
2
</div>
<div class="card">
3
</div>
<div class="card">
4
</div>
<div class="card">
5
</div>
<div class="card">
6
</div>
<div class="card">
1
</div>
<div class="card">
2
</div>
<div class="card">
3
</div>
<div class="card">
4
</div>
</div>
</div>
</body>
<script>
</script>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
编辑 (opens new window)
上次更新: 2024/03/06, 10:23:10