虽然效果实现了 但是感觉问题很多。请老师指导。小兔子位置我使用图块代替。不然您那边不显示兔子。

虽然效果实现了 但是感觉问题很多。请老师指导。小兔子位置我使用图块代替。不然您那边不显示兔子。

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
    <link rel="stylesheet" href="css\animation.css" />
  </head>
  <body>
      <!-- 天空部分 -->
    <div class="sky">
        <!-- 1~5的云朵 -->
      <div class="cloud1"></div>
      <div class="cloud2"></div>
      <div class="cloud3"></div>
      <div class="cloud4"></div>
      <div class="cloud5"></div>
    </div>
    <!-- 草坪部分 -->
    <div class="land">
      <!-- <div class="rabbit"><img src="img\rabbit.png" alt="这是小兔子" /></div> -->
      <div class="rabbit">这是小兔子</div>
    </div>
  </body>
</html>
* {
  margin: 0;
  padding: 0;
}
/* 天空布局 */
.sky {
  width: 100%;
  height: 600px;
  background: linear-gradient(rgb(196, 228, 253), #fff);
}
/* 第一朵云 */
.cloud1 {
  width: 100px;
  height: 25px;
  border-radius: 25px;
  position: relative;
  right: 150px;
  top: 140px;
  background: #ffffff;
  transform: scale(2.1, 2.1);
  z-index: 9999;
  opacity: 0.9;
  animation: cloud1 14s linear 0s infinite;
}

@keyframes cloud1 {
  0% {
    right: -100%;
  }
  100% {
    right: 100%;
  }
}

.cloud1:before {
  position: absolute;
  width: 50px;
  height: 25px;
  border-radius: 25px;
  background: #ffffff;
  content: "";
  transform: rotate(60deg);
  left: 5px;
  top: -2px;
}
.cloud1::after {
  position: absolute;
  width: 60px;
  height: 60px;
  border-radius: 60px;
  background: #ffffff;
  content: "";
  left: 30px;
  top: -25px;
}

/* 第二朵云 */
.cloud2 {
    width: 100px;
    height: 25px;
    border-radius: 25px;
    position: relative;
    right: 150px;
    top: 45px;
    background: #ffffff;
    transform: scale(1.9, 1.9);
    z-index: 9999;
    opacity: 0.8;
    animation: cloud2 17s linear 0s infinite;
  }
  
  @keyframes cloud2 {
    0% {
      right: -100%;
    }
    100% {
      right: 100%;
    }
  }
  
  .cloud2:before {
    position: absolute;
    width: 50px;
    height: 25px;
    border-radius: 25px;
    background: #ffffff;
    content: "";
    transform: rotate(60deg);
    left: 5px;
    top: -2px;
  }
  .cloud2::after {
    position: absolute;
    width: 60px;
    height: 60px;
    border-radius: 60px;
    background: #ffffff;
    content: "";
    left: 30px;
    top: -25px;
  }

/* 第三朵云 */
  .cloud3 {
    width: 100px;
    height: 25px;
    border-radius: 25px;
    position: relative;
    right: 150px;
    top: 180px;
    background: #ffffff;
    transform: scale(1.9, 1.9);
    z-index: 9999;
    opacity: 0.7;
    animation: cloud3 16s linear 0s infinite;
  }
  
  @keyframes cloud3 {
    0% {
      right: -100%;
    }
    100% {
      right: 100%;
    }
  }
  
  .cloud3:before {
    position: absolute;
    width: 50px;
    height: 25px;
    border-radius: 25px;
    background: #ffffff;
    content: "";
    transform: rotate(60deg);
    left: 5px;
    top: -2px;
  }
  .cloud3::after {
    position: absolute;
    width: 60px;
    height: 60px;
    border-radius: 60px;
    background: #ffffff;
    content: "";
    left: 30px;
    top: -25px;
  }

  /* 第四朵云 */
  .cloud4 {
    width: 100px;
    height: 25px;
    border-radius: 25px;
    position: relative;
    right: 150px;
    top: -5px;
    background: #ffffff;
    transform: scale(1.8, 1.8);
    z-index: 9999;
    opacity: 0.9;
    animation: cloud4 17s linear 0s infinite;
  }
  
  @keyframes cloud4 {
    0% {
      right: -115%;
    }
    100% {
      right: 100%;
    }
  }
  
  .cloud4:before {
    position: absolute;
    width: 50px;
    height: 25px;
    border-radius: 25px;
    background: #ffffff;
    content: "";
    transform: rotate(60deg);
    left: 5px;
    top: -2px;
  }
  .cloud4::after {
    position: absolute;
    width: 60px;
    height: 60px;
    border-radius: 60px;
    background: #ffffff;
    content: "";
    left: 30px;
    top: -25px;
  }

/* 第五朵云 */
  .cloud5 {
    width: 100px;
    height: 25px;
    border-radius: 25px;
    position: relative;
    right: 150px;
    top: 80px;
    background: #ffffff;
    transform: scale(1.6, 1.6);
    z-index: 9999;
    opacity: 0.6;
    animation: cloud5 20s linear 0s infinite;
  }
  
  @keyframes cloud5 {
    0% {
      right: -115%;
    }
    100% {
      right: 100%;
    }
  }
  
  .cloud5:before {
    position: absolute;
    width: 50px;
    height: 25px;
    border-radius: 25px;
    background: #ffffff;
    content: "";
    transform: rotate(60deg);
    left: 5px;
    top: -2px;
  }
  .cloud5::after {
    position: absolute;
    width: 60px;
    height: 60px;
    border-radius: 60px;
    background: #ffffff;
    content: "";
    left: 30px;
    top: -25px;
  }
  
  /* 草地部分 */
.land {
  width: 100%;
  height: 400px;
  background: linear-gradient(#fff, rgb(148, 190, 89));
  position: relative;
}

/* 小兔子图像 */
.rabbit {
  /* transform: scale(0.2, 0.2);
  position: absolute;
  bottom: -440px;
  right: -300px; */
  width: 100px;
  height: 100px;
  border: 1px red soild;
  border-radius: 50px;
  background: red;
  position: absolute;
  text-align: center;
  line-height: 100px;
  right: 200px;
  bottom: 50px;
}


正在回答

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

2回答

同学你好, “敲键盘侠”这位同学给的建议很棒哦, 可以将动画帧写成一个, 调整动画的时间和延迟时间, 简化代码书写

  1. 云朵的动画帧使用一个即可哦, 示例:

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

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

    其他的云朵道理一样,修改动画的名称即可

  2. 水平方向出现了滚动条, 建议: 可以给body添加overflow:hidden;属性,超出隐藏

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

  3. 兔子可以引入图片

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

    通过CSS设置样式, 可以给图片设置固定的宽度, 然后给外层设置绝对定位, 通过right和bottom属性设置兔子的位置

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

    效果图:

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

同学完成作业之后,可以提交作业哦,批作业的老师会针对同学的项目给出详细的指导建议, 以稳当的详细发给同学,便于同学查看哦

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~


敲着敲着 2019-09-26 01:56:45

云朵代码长了点,可以每个云朵插入同一个animation-Name;调整延迟。这样简洁一些。http://img1.sycdn.imooc.com//climg/5d8baa080930867307840888.jpg

  • 兔子我用一个div把整个兔子包含,后期用transform:translate()调整位置,scale()t调整大小。
    2019-09-26 02:00:14
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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