云彩飘得有问题啊,请问怎么破

云彩飘得有问题啊,请问怎么破

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Document</title>

<link rel="stylesheet" type="text/css" href="css/css.css">

</head>

<body>

<!-- 蓝天 -->

<div class="sky">

<div class="cloud one">

<div class="baseCloud"></div>

</div>

<div class="cloud two">

<div class="baseCloud"></div>

</div>

<div class="cloud three">

<div class="baseCloud"></div>

</div>

<div class="cloud four">

<div class="baseCloud"></div>

</div>

<div class="cloud five">

<div class="baseCloud"></div>

</div>

</div>

<!-- 草地 -->

<div class="land"></div>

</body>

</html>


*{

margin: 0;

padding: 0;

}


body{

width: 100%;

height: 100vh;

overflow: hidden;

}

/*蓝天*/

.sky{

width: 100%;

height: 60vh;

background: linear-gradient(rgb(196, 228, 253),transparent);

position: relative;

}

/*草地*/

.land{

width: 100%;

height: 40vh;

background: linear-gradient(transparent,rgb(148, 190, 89));

}

/*云彩*/

.baseCloud{

width: 100px;

    height: 100px;

    background: #fff;

    border-radius: 50%;

    transform: rotate(30deg);

    position: absolute;

    top: 30px;

    right: 90px;

}

.cloud:after{

content: '';

    display: block;

    position: absolute;

    width: 100px;

    height: 60px;

    background: #fff;

    border-radius: 50px;

    top: 60px;

    right: 135px;

    transform: rotate(60deg);

    z-index: 2;

}

.cloud:before{

content: '';

    display: block;

    position: absolute;

    width: 170px;

    height: 60px;

    background: #fff;

    border-radius: 130px/130px 131px 130px 130px;

    z-index: 1;

    top: 60px;

    right: 74px;

}

/*通过缩放出五个不一样的小云彩*/

.cloud.one{ 

position: absolute;

    right: -10%;

    transform:translateX(0); 

    animation: moveone 7s linear infinite normal;

}

.cloud.two{ 

position: absolute;

    top: -30px;

    right: 17%;

    transform: scale(0.75,0.75);

    opacity: 0.6;

    animation: movetwo 9s linear infinite normal;

}

.cloud.three{

position: absolute;

    top: 70px;

    right: 3%;

    transform: scale(0.8,0.8);

    opacity: 0.8;

    animation: movethree 9s linear infinite normal;

}

.cloud.four{

position: absolute;

    top: 110px;

    right: -24%;

    transform: scale(0.5,0.5);

    opacity: 0.7;

    animation: movefour 10s linear infinite normal;

}

.cloud.five{

position: absolute;

    top: -10px;

    right: -25%;

    transform: scale(0.6,0.5);

    opacity: 0.6;

    animation: movefive 7s linear infinite normal;

}

/*命名五个动画让云彩飘动起来*/

@keyframes moveone{

from{ right: -10%;}

to{ right: 100%; }

}

@keyframes movetwo{

from{ right: 17%; }

to{ right: 100%; }

}

@keyframes movethree{

from{ right:3%; }

to{ right: 100%; }

}

@keyframes movefour{

from{ right: -24%; }

to{ right: 100%; }

}

@keyframes movefive{

from{ right: -25%; }

to{ right: 100%; }

}


正在回答 回答被采纳积分+1

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

2回答
好帮手慕星星 2018-09-26 13:40:12

是因为动画中设置了right为正值的原因:

http://img1.sycdn.imooc.com//climg/5bab1b54000190a602890290.jpg

每完成一次动画,下一次就会出现在开始设置的位置。建议使用一个动画

http://img1.sycdn.imooc.com//climg/5bab1b8300015e9203270215.jpg

改变白云飘的时间,或者是增加延迟时间。

好帮手慕星星 2018-09-26 09:39:57

经测试效果还是可以的呢,建议使用一个@keyframes,这样可以减少代码冗余。

你提问的飘的有问题具体是指什么呢?

祝学习愉快~~

  • 提问者 人艰不拆OMG #1
    动画到屏幕左边以后,再次动画的时候有两朵云是直接在他们最初位置显示出来后继续动画的,出现的很突然
    2018-09-26 11:58:56
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
响应式开发与常用框架 2018
  • 参与学习           人
  • 提交作业       2198    份
  • 解答问题       5012    个

如果你有web端基础,既想进阶,又想进军移动端开发,那就来吧,我们专题为你带来的课程有HTML5、CSS3、移动基础、响应式、bootstrap、less等,让你在前端道路上畅通无阻!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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