检查代码看看是否有错误

检查代码看看是否有错误

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
<!DOCTYPE html>
<html>
 
<head>
<meta charset="utf-8">
<title>CSS布局</title>
<link rel="stylesheet" href="../index.css/style4.css" type="text/css" /><!-- 引用css样式表,记住格式 -->
</head>
 
<body>
<!-- 天空 -->
<div class="bluesky">
<!-- 5朵白云 -->
<div class="cloud one"></div>
<div class="cloud two"></div>
<div class="cloud three"></div>
<div class="cloud four"></div>
<div class="cloud five"></div>
</div>
<!-- 草地 -->
<div class="ground">
<img src="../image/rabbit.png" alt="小兔子">
</div>
</body>
 
</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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
*{
margin0;
padding0;
}
/* 蓝天 */
.bluesky{
width100%;
height60vh;
/* vh是指窗口高度的百分比 */
positionrelative;
background: linear-gradient(0deg,rgba(196228253,0.210%,rgba(196228253,0.540%,rgba(196228253,0.760%,rgba(196228253,0.980%);
overflowhidden;
}
/* 5朵白云 */
.bluesky > .cloud{
width100px;
height100px;
background#FFFFFF;
positionabsolute;
floatleft;
border-radius: 50%;
}
.bluesky > .cloud::before{
content"";
displayblock;
width60px;
height90px;
background#FFFFFF;
positionabsolute;
top20px;
left-30px;
border-radius: 50%;
transform: rotate(-45deg);
}
.bluesky > .cloud::after{
content"";
displayblock;
width160px;
height57px;
background#FFFFFF;
positionabsolute;
top36px;
left-50px;
border-radius: 60px;
}
.bluesky > .cloud.one{
positionabsolute;
top0px;
right100px;
transform: scale(1.2);
opacity: 0.6;
animation: translate1 6s linear 0.5s infinite normal;
}
.bluesky > .cloud.two{
positionabsolute;
top15px;
right-500px;
transform: scale(1.3);
opacity: 0.7;
animation: translate2 8s linear 0.5s infinite normal;
}
.bluesky > .cloud.three{
positionabsolute;
top120px;
right-150px;
transform: scale(1.4);
opacity: 0.8;
animation: translate3 5s linear 0.5s infinite normal;
}
.bluesky > .cloud.four{
positionabsolute;
top180px;
right-300px;
transform: scale(1);
opacity: 0.5;
animation: translate4 10s linear 0.5s infinite normal;
}
.bluesky > .cloud.five{
positionabsolute;
top240px;
right-20px;
transform: scale(1.2);
opacity: 0.6;
animation: translate5 6s linear 0.5s infinite normal;
}
@keyframes translate1{
0% {right100px;}
100% {right100%;}
}
@keyframes translate2{
0% {right-500px;}
100% {right100%;}
}
@keyframes translate3{
0% {right-150px;}
100% {right100%;}
}
@keyframes translate4{
0% {right-300px;}
100% {right100%;}
}
@keyframes translate5{
0% {right-20px;}
100% {right100%;}
}
/* 草地 */
.ground{
width100%;
height40vh;
positionrelative;
background: linear-gradient(180deg,rgba(196228253,0.25%,rgba(14819089,0.340%,rgba(14819089,0.560%,rgba(14819089,0.780%);
}
/* 兔子图片 */
.ground img{
width300px;
height300px;
positionabsolute;
right200px;
bottom50px;
}

有一个问题,是否能将5个keyframes合成一个呢,就是0%的时候,因为他们的位置我都设置好了,是否能将元素设置为保持当前状态,就是0%{right:}这里,或者说还有另一种方法?我试了设置fill-mode保持当前状态也不行,动画开始时还是会到0%设置的状态。

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,不一样也是可以的,不过都从右边飘出来比较好。视频这个只是录制时候是在运行的过程,导致看起来是从屏幕中的哦。

希望能帮助到你,祝学习愉快!

好帮手慕糖 2019-08-27 10:11:16

同学你好,1、代码是可以的哦。

2、关于动画开始这个,可以设置其从同一位置开始,只要设置的时间不同,就不会重合到一起,这个是没有影响的哦。不过建议:这里要从最右边(从里面飘出了的感觉)飘出,所以建议:right的开始值可以设置为-30%这样的,让其开始的时候完全不显示在页面中。(定位的时候,也可以定位到里面去哦)

希望能帮助到你,祝学习愉快!

  • 视频里面开始的时候每一朵云的right值不一样啊,有2朵云开始的时候还在屏幕中
    2019-08-27 10:49:01
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码