用html写一个加载页面动画

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>加载页面动画Ⅴ</title>
  <link rel="stylesheet" href="./style.css">
</head>

<body>
  <div class="all">
    <!-- 容器部分 -->
    <div class="bowl">
      <!-- 容器中的水 -->
      <div class="water">
        <div class="inner"></div>
      </div>

      <div class="top-water"></div>

      <div class="center-box">
        <!-- 渔民 -->
        <div class="fisherman">
          <div class="body"></div>
          <div class="right-arm"></div>
          <div class="right-leg"></div>
          <!-- 鱼竿 -->
          <div class="rod">
            <div class="handle"></div>
            <div class="rope"></div>
          </div>
          <div class="butt"></div>
          <div class="left-arm"></div>
          <div class="left-leg"></div>

          <div class="head">
            <div class="face"></div>
            <div class="eyebrows"></div>
            <div class="eyes"></div>
            <div class="nose"></div>
            <div class="beard"></div>
            <div class="hat"></div>
          </div>
        </div>

        <!-- 船 -->
        <div class="boat">
          <div class="motor">
            <div class="parts"></div>
            <div class="button"></div>
          </div>
          <div class="top"></div>
          <div class="boat-body"></div>

          <div class="waves"></div>
        </div>
      </div>

      <!-- 绘制鱼,是之前画好的鱼svg,源代码可直接复制 -->
      <div class="fish">
        <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
          x="0px" y="0px" viewBox="0 0 483.7 361.9" style="enable-background:new 0 0 483.7 361.9;" xml:space="preserve">
          <style type="text/css">
            .st0 {
              fill: #E0AC26;
            }

            .st1 {
              fill: #E0AC26;
              stroke: #E0AC26;
              stroke-width: 1.061;
              stroke-miterlimit: 10;
            }

            .st2 {
              fill: #FFFFFF;
            }
          </style>
          <g>
            <g>
              <path class="st0" d="M168.8,298.4c1.2,8.5,0.3,17.1,0.5,25.7c0.2,9.6,2,18.6,8.8,25.9c9.4,10,25.3,14.4,38.7,10.4
						c17.7-5.3,21.7-23.3,19.9-39.9c-1.9-18.1-36.9-35.6-47.7-49.9" />
              <g>
                <path class="st0" d="M167.6,298.4c2.1,17-3.6,36.8,8.5,51.2c9.6,11.4,26.7,16.2,40.8,11.9c13.3-4,19.8-16,20.9-29.2
							c0.5-5.8,0.6-12.3-1.8-17.7c-2.4-5.5-6.6-10-10.9-14.1c-11.2-10.7-25.9-18.5-35.6-30.8c-0.9-1.1-2.5,0.5-1.6,1.6
							c6.8,8.7,16.6,15,25.1,21.8c8.2,6.6,19.6,14.9,22,25.8c2.6,11.8-0.2,27.8-9.9,35.7c-12.2,9.9-31.9,7-43.4-2.6
							c-16.4-13.6-9.8-35.4-12.1-53.7C169.7,297,167.5,297,167.6,298.4L167.6,298.4z" />
              </g>
            </g>
            <path class="st1" d="M478.9,117c4.7-9.7,8.2-23.7-1.1-29.1c-14.2-8.2-57.5,45.2-56.5,46.4c-48.6-54.4-77.1-85.6-131.5-106.8
					c-16.6-6.5-34.3-10.2-52.2-11.2c-6-0.8-12-1.4-18-1.7C156.4,11.3,100.7,51.6,80,64.7C59.3,77.8,2.5,154.2,0.4,158.5
					c0,0-1.1,9.8,15.3,22.9s22.9,12,16.4,22.9c-6.5,10.9-30.6,17.5-31.7,26.2c-1.1,8.7,0,8.7,8.7,10.9c8.7,2.2,50.2,46.5,103.7,64.7
					c53.5,18.2,111.7,18.2,146.4,12.8c2.7-0.4,5.5-1,8.2-1.6c12.3-1.9,24.7-4.5,33-8.2c15.7-5.9,28.9-12.5,34.2-15.3
					c1.6,0.5,3.2,1.1,4.6,1.9c2.1,3.1,5.5,7.9,8.9,11.6c7.6,8.2,20.9,8.6,31.1,4c7.7-3.5,18.9-16.7,21.6-25.2c2.2-6.8,2.3-5.1-0.9-10.3
					c-0.5-0.9-14.9-8.8-14.7-9c14.3-15.3,34.3-40,34.3-40c10.4,15.9,29.6,47.3,43.1,47.8c17.3,0.7,18.9-18.6,16-30.9
					C466.5,195.2,456,164,478.9,117z" />
            <g>
              <g>
                <path class="st0" d="M184.5,20.7c19.7-19,53.9-21.9,79.5-17c27.7,5.3,54.6,22.1,61.6,50.9c0.6,2.3,4.1,1.3,3.5-1
							C317.5,5.4,257.7-8.8,215.1,1.4c-12.1,2.9-24,8-33.1,16.7C180.3,19.7,182.8,22.3,184.5,20.7L184.5,20.7z" />
              </g>
            </g>
            <g>
              <g>
                <path class="st2" d="M220.9,323.1c-3.2-9.4-9.9-16.6-16.6-23.7c-8.2-8.7-16.6-17-25.4-25.1c-0.6-0.5-1.6-0.2-1.6,0.6
							c0.3,7.6,0.6,15.3,0.9,22.9c0.4,10.9-0.2,22.7,3.3,33.1c3.7,11,13.5,20.6,25.9,18.7C220.2,347.7,223.9,333.9,220.9,323.1
							c-0.3-1.1-2.1-0.6-1.8,0.5c1.8,6.4,1.5,13.6-2.8,19c-4.9,6.1-13.3,6.6-20.1,3.5c-12-5.6-14.9-19.7-15.4-31.6
							c-0.6-13.2-1.1-26.4-1.6-39.5c-0.5,0.2-1,0.4-1.6,0.6c7.8,7.2,15.4,14.7,22.8,22.4c7.3,7.7,15.2,15.4,18.7,25.7
							C219.5,324.7,221.3,324.2,220.9,323.1z" />
              </g>
            </g>
            <g>
              <g>
                <path class="st2" d="M144.2,107.3c17.9,21.5,26.7,50,23.4,77.9c-3.2,26.8-17.6,51.5-38.7,68.2c-0.9,0.7,0.4,2,1.3,1.3
							c21.5-17,36-42.2,39.3-69.5c3.4-28.4-5.7-57.3-23.9-79.2C144.8,105.1,143.5,106.4,144.2,107.3L144.2,107.3z" />
              </g>
            </g>
            <g>
              <g>
                <path class="st2" d="M80.3,114.8c6.9-1.6,14.2,2.1,16.9,8.7c0.4,1.1,2.2,0.6,1.8-0.5c-3.1-7.5-11.2-11.8-19.2-9.9
							C78.6,113.3,79.1,115.1,80.3,114.8L80.3,114.8z" />
              </g>
            </g>
            <g>
              <g>
                <path class="st0" d="M223.6,26.5c11.2-6.9,20.6-16.2,31.8-23.1c1.3-0.8,0.1-2.9-1.2-2.1c-11.2,6.9-20.6,16.2-31.8,23.1
							C221.1,25.2,222.3,27.3,223.6,26.5L223.6,26.5z" />
              </g>
            </g>
            <g>
              <g>
                <path class="st0" d="M266.7,37.7c10.4-6.5,17.6-16.6,28-23.1c1.3-0.8,0.1-2.9-1.2-2.1c-10.4,6.5-17.6,16.6-28,23.1
							C264.2,36.4,265.4,38.6,266.7,37.7L266.7,37.7z" />
              </g>
            </g>
            <path class="st2" d="M90.1,138.3c-1.7-2.7-4.7-5-8.8-6.7c-9.7-4-22.9,3-24.6,16.6c-0.6,4.8,1.4,9.7,4.6,12.9
					c4.6,4.7,10.6,6.5,16.8,4c3.4-1.4,6.8-3.1,9.1-6C92.4,152.5,94.7,146,90.1,138.3z" />
            <g>
              <g>
                <path class="st2" d="M345.8,292.9c7.3,15.1,26,16.9,38.7,7.3c3-2.3,5.7-5.1,7.6-8.3c1.4-2.3,4-7,3.2-9.7c-0.5-1.5-2.2-2.3-3.5-3
							c-3.6-2.2-7.4-4.2-10.5-7c-0.9-0.8-2.2,0.5-1.3,1.3c3.5,3.2,8.1,4.9,11.7,7.9c1.5,1.3,1.7,1.3,1.3,3.4c-0.4,2-1.2,3.8-2.2,5.6
							c-1.9,3.4-4.7,6.4-7.8,8.7c-11.9,8.6-28.8,6.9-35.5-7C346.9,290.9,345.3,291.9,345.8,292.9L345.8,292.9z" />
              </g>
            </g>
            <g>
              <g>
                <path class="st2" d="M457.1,155.4c3.1-10.6,7.5-20.6,11.3-30.9c1.8-4.8,6.7-15.9,1.3-20.1c-5.9-4.6-15.2,3.1-19.3,6.8
							c-7.2,6.3-13.4,13.8-18.6,21.8c-8.2,12.6-16.1,26.5-16.8,41.9c-0.6,13.7,3.8,27.2,9.7,39.4c6.3,13.1,14.7,25.2,23.7,36.6
							c3.2,4.1,7.1,10.3,12.7,11.3c5,0.9,6.5-3.2,7.1-7.3C473.1,220.8,448.3,189.2,457.1,155.4c0.3-1.2-1.5-1.7-1.8-0.5
							c-6.2,23.9,4.2,47.2,9.2,70.2c1.4,6.6,2.5,13.3,2.5,20.1c0,2.6-0.1,5.2-0.4,7.8c-0.3,2.5-0.4,6.8-4.1,7.3
							c-2.9,0.4-5.9-2.8-7.6-4.7c-8.3-9.1-15.5-19.6-21.8-30.2c-6.8-11.3-12.6-23.6-15-36.7c-2.7-14.3,0.3-27.7,6.9-40.5
							c4.8-9.2,10.5-18,17.2-25.9c5.4-6.3,12.3-14.3,20.5-16.9c12.5-3.9,5.8,13.9,3.7,19.4c-3.8,9.9-7.9,19.7-10.9,29.9
							C454.9,156,456.7,156.5,457.1,155.4z" />
              </g>
            </g>
            <g>
              <g>
                <path class="st2" d="M246.6,310.6c42.2-0.3,84.8-21.1,117.2-46.8c13.2-10.5,26.6-23,33.9-38.4c3.4-7.1,3.3-13.8,2.9-21.6
							c-0.5-10.2-1-20.2-0.6-30.4c0.2-5.4,0.4-10.8,0.6-16.1c0.2-5.9,1.7-13.1-0.1-19c-1.5-5.2-6.1-10.1-9.3-14.5
							c-3.6-4.9-7.5-9.7-11.4-14.4c-14.7-17.2-31.9-32.3-50.8-44.8c-29.4-19.5-65.1-34.8-100.9-35c-25-0.1-50.8,2.1-74.3,11.1
							c-16.7,6.3-31.3,16.2-45,27.5c-0.9,0.8,0.4,2.1,1.3,1.3c12.1-9.9,24.9-18.9,39.3-25c18.7-8,39.1-11.3,59.3-12.5
							c17.9-1,35.2-0.4,52.6,4c18.1,4.6,35.5,11.9,51.8,21c18.5,10.4,35.6,23.3,50.8,38.1c8.4,8.2,16.3,17.1,23.4,26.4
							c3.5,4.6,7.4,9.4,10.2,14.5c3.4,6.2,1.5,15.2,1.2,22c-0.4,10.2-1.4,20.5-0.9,30.6c0.4,8.9,1.7,17.9,1,26.8
							c-0.5,6.8-4.7,13.3-8.5,18.8c-4.9,7-10.9,13.3-17.2,19.1c-17.1,15.8-37.2,28.5-58.2,38.2c-21.3,9.9-44.7,17.1-68.4,17.2
							C245.4,308.7,245.4,310.6,246.6,310.6L246.6,310.6z" />
              </g>
            </g>
            <g>
              <g>
                <g>
                  <path class="st2" d="M217.1,88.9c2.4,2,5.1,4.3,5.9,7.4c1,3.6-0.7,7.2-3.7,9.1c-1,0.6-0.1,2.2,0.9,1.6c3.1-2,5-5.3,4.9-9.1
								c-0.2-4.5-3.5-7.6-6.7-10.3C217.5,86.8,216.2,88.1,217.1,88.9L217.1,88.9z" />
                </g>
              </g>
              <g>
                <g>
                  <path class="st2" d="M221.9,240.7c6.6,3.6,7.2,11.9,1.4,16.7c-0.9,0.7,0.4,2,1.3,1.3c6.7-5.5,5.7-15.4-1.8-19.5
								C221.8,238.6,220.9,240.2,221.9,240.7L221.9,240.7z" />
                </g>
              </g>
              <g>
                <g>
                  <path class="st2" d="M196.5,69.3c4.9,3.9,5.5,11.4,1.1,16c-0.8,0.9,0.5,2.1,1.3,1.3c5-5.3,4.5-14-1.1-18.6
								C196.8,67.3,195.5,68.6,196.5,69.3L196.5,69.3z" />
                </g>
              </g>
              <g>
                <g>
                  <path class="st2" d="M345,169.2c3.4,1.4,4.9,5.2,4.9,8.7c0,3.8-2.7,6.7-5.3,9.1c-0.9,0.8,0.4,2.1,1.3,1.3
								c3.5-3.2,6.3-6.9,5.7-11.8c-0.4-4-2.4-7.4-6.1-9C344.4,167,343.9,168.8,345,169.2L345,169.2z" />
                </g>
              </g>
            </g>
            <g>
              <g>
                <path class="st2" d="M285.5,202.5c-12.6,16.9-36.2,22.6-55.1,13.4c-6.5-3.2-11.4-8.1-16.5-13.1c-4.7-4.7-10-9.2-12.9-15.3
							c-4.9-10.6-2.3-23,5.6-31.3c3.7-3.8,7.5-7.6,11.3-11.3c13.9-13.7,35.1-17.6,52.6-8.3C294.7,149.3,301.1,180.7,285.5,202.5
							c-0.7,1,0.9,1.9,1.6,0.9c14.1-19.7,11.2-47.5-7.7-63.1c-16.3-13.5-40.5-14.1-57.4-1.3c-5.6,4.2-10.4,9.7-15.3,14.7
							c-6.6,6.6-10.6,14.8-9.9,24.3c0.6,9.1,5.4,15.6,11.5,21.8c5.4,5.4,10.6,11.3,17.1,15.4c20.2,12.7,47.5,7.3,61.7-11.8
							C287.8,202.5,286.2,201.6,285.5,202.5z" />
              </g>
            </g>
          </g>
        </svg>
      </div>
    </div>

    <!-- loading 动画 -->
    <h1>Loading</h1>
  </div>

  <!-- partial -->
  <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js'></script><script src="./script.js"></script>
</body>
</html>
var s = {
  title: {
    el: $("h1"),
    dots: 0
  },
  bowl: {
    el: $(".bowl"),
    top: $(".bowl .top-water")
  }
};

var loading = window.setInterval(function() {
  var str = "";

  if (s.title.dots < 3) {
    s.title.dots++;
  } else {
    s.title.dots = 1;
  }

  for (var i = 0; i < s.title.dots; i++) {
    str += "."
  }

  s.title.el.html("Loading" + str);
}, 500);
/* 引入字体库 */
@import url('https://fonts.googleapis.com/css?family=Montserrat:300,400,700');

/* 对于标签样式调整 */
* {
	padding: 0;
	margin: 0;
	position: relative;
}

/* 主体的背景和字体 */
body {
	background: #fff5df;
	font-family: 'Montserrat', sans-serif;
}

/* 父,对整体进行调整 */
.all {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	/* 缩小 */
	transform: scale(.75);
}

/* 子 */
.bowl {
	width: 250px;
	height: 250px;
	border: 5px solid #fff;
	border-radius: 50%;
	position: fixed;
	top: calc(50% - 125px);
	left: calc(50% - 125px);
	background: rgba(90, 201, 226, 0.3);
}

/* 容器的阴影 */
.bowl:before {
	content: "";
	position: absolute;
	bottom: -25px;
	left: 50px;
	width: 150px;
	height: 50px;
	border-radius: 50%;
	background: rgba(0,0,0,0.15);
}

/* 容器口 */
.bowl:after {
	content: "";
	position: absolute;
	top: 10px;
	left: calc(25% - 3px);
	width: 50%;
	height: 40px;
	border: 3px solid #fff;
	border-radius: 50%;
}

/* 调整整体位置 */
.bowl .water {
	position: absolute;
	bottom: 5%;
	left: 0;
	width: 100%;
	height: 50%;
	overflow: hidden;
	/* 添加水的动画 */
	animation: top-inner 5s ease infinite;
}

@keyframes top-inner {
	from {
		transform: rotate(0deg);
		margin-left: 0px;
	}
	25% {
		transform: rotate(3deg);
		margin-left: -3px;
	}
	50% {
		transform: rotate(-6deg);
		margin-left: 6px;
	}
	75% {
		transform: rotate(5deg);
		margin-left: -5px;
	}
	to {
		transform: rotate(0deg);
		margin-left: 0px;
	}
}

/* 容器中的水 */
.bowl .water .inner {
	width: 225px;
	height: 225px;
	border-radius: 50%;
	background: #4e99ce;
	position: absolute;
	bottom: 0;
	left: 12.5px;
}

/* 为了使水立体 */
.bowl .top-water {
	position: absolute;
	width: 225px;
	height: 60px;
	border-radius: 50%;
	background: #82bde6;
	bottom: 105px;
	left: 12.5px;
	/* 添加动画 */
	animation: top 5s ease infinite;
}

/* 与上面动画保持一致,如果不一致,刷新一下  */
@keyframes top {
	from {
		transform: rotate(0deg);
	}
	25% {
		transform: rotate(3deg);
	}
	50% {
		transform: rotate(-6deg);
	}
	75% {
		transform: rotate(5deg);
	}
	to {
		transform: rotate(0deg);
	}
}
/* 至此,容器和水就完成了~ */

/* 待全部画完后就可以添加动画了,添加后人物就在容器中了 */
.center-box {
	height: 400px;
	width: 400px;
	position: fixed;
	top: calc(50% - 250px);
	left: calc(50% - 180px);
  /* 添加动画 */
  animation: float 5s ease infinite;
	transform: scale(0.5);
}

@keyframes float {
	from {
		transform: translate(0, 0px) scale(0.25);
	}
	25% {
		transform: translate(0, 4px) scale(0.25);
	}
	50% {
		transform: translate(0, -7px) scale(0.25);
	}
	75% {
		transform: translate(0, 7px) scale(0.25);
	}
	to {
		transform: translate(0, -0px) scale(0.25);
	}
}

/* 渔民 */
.fisherman {
	width: 400px;
	height: 300px;
}

/* 身体 */
.fisherman .body {
	width: 80px;
	height: 150px;
	background: #d2bd24;
	position: absolute;
	bottom: 15px;
	right: 40px;
	-webkit-clip-path: ellipse(40% 50% at 0% 50%);
	clip-path: ellipse(40% 50% at 0% 50%);
	transform: rotate(-20deg);
}

.fisherman .body:before {
	content: "";
	width: 80px;
	height: 200px;
	background: #d2bd24;
	position: absolute;
	bottom: -10px;
	right: 15px;
	-webkit-clip-path: ellipse(90% 50% at 0% 50%);
	clip-path: ellipse(90% 50% at 0% 50%);
	transform: rotate(10deg);
}

/* 右胳膊 */
.fisherman .right-arm {
	width: 20px;
	height: 110px;
	background: #d2bd24;
	border-radius: 20px;
	position: absolute;
	bottom: 46px;
	right: 163px;
	transform: rotate(40deg);
}

.fisherman .right-arm:before {
	content: "";
	background: #ffd1b5;
	width: 25px;
	height: 25px;
	position: absolute;
	top: 82px;
	right: 50px;
	border-radius: 20px;
}

.fisherman .right-arm:after {
	content: "";
	width: 20px;
	height: 50px;
	background: #d2bd24;
	border-radius: 20px;
	position: absolute;
	bottom: -15px;
	right: 20px;
	transform: rotate(-80deg);
	border-top-left-radius: 0px;
	border-top-right-radius: 0px;
}

/* 右腿 */
.fisherman .right-leg {
	width: 20px;
	height: 110px;
	background: #bf3526;
	border-radius: 20px;
	position: absolute;
	bottom: -22px;
	right: 159px;
	transform: rotate(-60deg);
}

.fisherman .right-leg:before {
	content: "";
	width: 20px;
	height: 100px;
	background: #bf3526;
	border-radius: 20px;
	position: absolute;
	bottom: 45px;
	left: -40px;
	transform: rotate(80deg);
}

.fisherman .right-leg:after {
	content: "";
	position: absolute;
	bottom: 38px;
	left: -75px;
	width: 30px;
	height: 100px;
	background: #338ca0;
	transform: rotate(80deg);
}

/* 鱼竿 */
.rod {
  position: absolute;
  width: 380px;
  height: 5px;
  bottom: 130px;
  left: -140px;
  background: #331604;
  transform: rotate(10deg);
}

/* 鱼竿柄 */
.rod .handle {
  width: 20px;
  height: 20px;
  border-radius: 20px;
  left: 310px;
  top: 3px;
  background: #efdddb;
}

.rod .handle:before {
  content: "";
  position: absolute;
  width: 13px;
  height: 4px;
  left: 10px;
  top: 7px;
  background: #1a1a1a;
}

/* 鱼线 */
.rod .rope {
  width: 3px;
  height: 250px;
  top: -18px;
  left: 22px;
  transform: rotate(-10deg);
  background: #fff;
  /* 添加动画 */
  /* animation: ; */
}

.fisherman .butt {
  position: absolute;
  width: 50px;
  height: 20px;
  border-radius: 20px;
  bottom: 0;
  right: 90px;
  background: #bf3526;
}

/* 左胳膊 */
.fisherman .left-arm {
  position: absolute;
  width: 20px;
  height: 90px;
  bottom: 55px;
  right: 135px;
  border-radius: 20px;
  transform: rotate(30deg);
  background: #e8d93d;
}

.fisherman .left-arm:before {
  content: "";
  position: absolute;
  width: 25px;
  height: 25px;
  top: 50px;
  right: 53px;
  border-radius: 20px;
  background: #ffd1b5;
}

.fisherman .left-arm:after {
  content: "";
  position: absolute;
  width: 20px;
  height: 60px;
  bottom: -15px;
  right: 20px;
  border-radius: 20px;
  transform: rotate(-70deg);
  background: #e8d93d;
}

/* 左腿 */
.fisherman .left-leg {
  position: absolute;
  width: 20px;
  height: 100px;
  bottom: -14px;
  right: 120px;
  border-radius: 20px;
  transform: rotate(-50deg);
  background: #de4125;
}

.fisherman .left-leg:before {
  content: "";
  position: absolute;
  width: 20px;
  height: 100px;
  bottom: 20px;
  left: -37px;
  border-radius: 20px;
  transform: rotate(60deg);
  background: #de4125;
}

.fisherman .left-leg:after {
  content: "";
  position: absolute;
  width: 30px;
  height: 100px;
  bottom: 2px;
  left: -70px;
  transform: rotate(60deg);
  background: #338ca0;
}

/* 头部 */
.fisherman .head {
  position: absolute;
  width: 60px;
  height: 80px;
  bottom: 135px;
  right: 110px;
  border-radius: 50%;
  transform: rotate(10deg);
}

/* 脸 */
.head .face {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  overflow: hidden;
  background: #d76540;
}

.head .face:before {
  content: "";
  position: absolute;
  width: 60px;
  height: 85px;
  top: -20px;
  left: -10px;
  border-radius: 50%;
  background: #ffd1b5;
  transform: rotate(-10deg);
}

/* 睫毛 */
.head .eyebrows {
  position: absolute;
  width: 15px;
  height: 7px;
  top: 15px;
  left: -3px;
  transform: rotate(-10deg);
  background: #e67e5b;
}

.head .eyebrows:before {
  content: "";
  position: absolute;
  width: 20px;
  height: 7px;
  top: 0px;
  left: 22px;
  background: #e67e5b;
}

/* 眼睛 */
.head .eyes {
  position: absolute;
  width: 5px;
  height: 8px;
  top: 25px;
  left: 6px;
  border-radius: 50%;
  transform: rotate(-10deg);
  background: #1a1a1a;
}

.head .eyes:before {
  content: "";
  position: absolute;
  width: 5px;
  height: 8px;
  top: 0px;
  left: 20px;
  border-radius: 50%;
  background: #1a1a1a;
}

/* 鼻子 */
.head .nose {
  position: absolute;
  width: 0;
  height: 0;
  border-top: 20px solid transparent;
  border-bottom: 8px solid transparent;
  border-right: 15px solid #fab58e;
  top: 25px;
  left: 6px;
  transform: rotate(-10deg);
}

/* 胡子 */
.head .beard {
	position: absolute;
	width: 40px;
	height: 25px;
	top: 38px;
	left: 1px;
	transform: rotate(-10deg);
	clip-path: ellipse(50% 50% at 50% 100%);
	background: #e67e5b;
}

/* 帽子 */
.head .hat {
	position: absolute;
	width: 80px;
	height: 8px;
	top: 8px;
	left: -13px;
	background: #3d402b;
}

.head .hat:before {
	content: "";
	position: absolute;
	width: 60px;
	height: 40px;
	left: 10px;
	bottom: 8px;
	clip-path: ellipse(50% 50% at 50% 90%);
	background: #7b8445;
}

/* 船 */
/* 调整整个船体的位置、大小关系 */
.boat {
	width: 400px;
	height: 100px;
	margin-top: -15px;
}

.boat .motor {
	width: 80px;
	height: 80px;
	border-radius: 20px;
	top: -50px;
	right: -370px;
	background: #ef4723;
}

.boat .motor:before {
	content: "";
	position: absolute;
	width: 20px;
	height: 100px;
	clip-path: polygon(0 0, 100% 0, 60% 100%, 0% 100%);
	top: 55px;
	right: 20px;
	z-index: -1;
	background: #bf3526;
}

.boat .motor:after {
	content: "";
	position: absolute;
	width: 80px;
	height: 20px;
	left: 0;
	top: 0;
	border-top-left-radius: 18px;
	border-top-right-radius: 18px;
	background: #fff;
}

.boat .motor .parts,
.boat .motor .parts:before,
.boat .motor .parts:after {
	position: absolute;
	width: 25px;
	height: 5px;
	right: 10px;
	top: 30px;
	border-radius: 20px;
	background: #bf3526;
}

.boat .motor .parts:before,
.boat .motor .parts:after {
	content: "";
	right: 0px;
}

.boat .motor .parts:before {
	top: 10px;
}

.boat .motor .parts:after {
	top: 20px;
}

/* 扳手 */
.boat .motor .button {
	position: absolute;
	width: 20px;
	height: 10px;
	left: -10px;
	top: 25px;
	border-radius: 20px;
	background: #bf3526;
}

.boat .top {
	position: absolute;
	width: 390px;
	height: 5px;
	top: 0;
	right: 0;
	border-bottom: solid 5px #cdab33;
	background: #e8da43;
}

.boat .boat-body {
	position: absolute;
	width: 380px;
	height: 90px;
	bottom: 0;
	right: 0;
	border-bottom-left-radius: 90px;
	border-bottom-right-radius: 20px;
	clip-path: polygon(0 0, 100% 0, 99% 100%, 0% 100%);
	background: #cdab33;
}

.boat .boat-body:before {
	content: "";
	position: absolute;
	width: 380px;
	height: 70px;
	bottom: 20px;
	right: 0px;
	border-bottom-left-radius: 60px;
	background: #d2bd39;
}

.boat .boat-body:after {
	content: "";
	position: absolute;
	width: 380px;
	height: 40px;
	bottom: 50px;
	right: 0px;
	border-bottom-left-radius: 60px;
	background: #e8da43;
}

/* 波纹 */
.waves {
	height: 100%;
	box-sizing: border-box;
	border: 7px solid #fff;
	border-radius: 50%;
	transform: translate(30px, -30px);
	z-index: -10;
	/* 添加动画 */
	animation: waves 5s ease infinite;
}

@keyframes waves {
	from {
		margin-left: 0px;
		margin-right: 0px;
		border-color: #fff;
	}
	to {
		margin-left: -100px;
		margin-right: -100px;
		border-color: transparent;
	}
}

.fish {
	position: absolute;
	width: 15px;
	height: 15px;
	margin-left: 8px;
	/* 添加动画 */
	animation: jump 3s infinite;
}

@keyframes jump {
	0% {
		left: 80px;
		top: 120px;
		transform: rotate(90deg);
		opacity: 1;
	}
	16.7% {
		left: 70px;
		top: 60px;
		transform: rotate(-20deg);
		opacity: 1;
	}
	33.4% {
		left: 60px;
		top: 120px;
		transform: rotate(-90deg);
		opacity: 0;
	}
	50% {
		left: 80px;
		top: 120px;
		transform: rotate(90deg);
		opacity: 0;
	}
	100% {
		left: 80px;
		top: 120px;
		transform: rotate(90deg);
		opacity: 0;
	}
}

h1 {
	position: fixed;
	width: 100%;
	top: calc(50% + 170px);
	left: 0;
	text-align: center;
	font-size: 40px;
	color: rgba(0, 0, 0, 0.15);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/551207.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Git】安装 Git

文章目录 1. CentOS 下安装2. Ubuntu 下安装 Git 是开放源代码的代码托管工具&#xff0c;最早是在 Linux 下开发的。开始也只能应用于 Linux 平台&#xff0c;后面慢慢的被移植到 Windows 下。现在&#xff0c;Git 可以在 Linux、Unix、Mac 和 Windows 这几大平台上正常运行了…

【每日力扣】15. 三数之和与11. 盛最多水的容器

&#x1f525; 个人主页: 黑洞晓威 &#x1f600;你不必等到非常厉害&#xff0c;才敢开始&#xff0c;你需要开始&#xff0c;才会变的非常厉害 15. 三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k…

【Proteus】蜂鸣器播放音乐

按键按一次&#xff0c;蜂鸣器响一次 &#xff0c;LCD1602同步。 #include <REGX52.H> #include <INTRINS.H>unsigned int keynum; sbit RSP3^0; //** sbit RWP3^1; //** sbit EP3^2; //** sbit buzzerP1^5; void delay(unsigned int n)//1ms {unsigned char a,…

树莓派安装tensorflow

树莓派安装tensorflow 使用编译好的版本自己选择版本进行编译armv71 架构 教程转载 使用编译好的版本 下载tensorflow编译好的版本 https://github.com/lhelontra/tensorflow-on-arm/tags由于python版本支持有限可能需要自己安装python 安装对应的python 自己选择版本进行编译…

【Golang】并发编程之三大问题:原子性、有序性、可见性

目录 一、前言二、概念理解2.1 有序性2.2 原子性后果1&#xff1a;其它线程会读到中间态结果&#xff1a;后果2&#xff1a;修改结果被覆盖 2.3 可见性1&#xff09;store buffer(FIFO)引起的类似store-load乱序现象2&#xff09;store buffer(非FIFO)引起的类似store-store乱序…

Java web应用性能分析概叙

“系统慢”&#xff0c;这是任何一个应用都会出现的问题&#xff0c;面对“系统慢”的问题&#xff0c;客户、测试、开发、管理者等不同角色的人员有不同反应&#xff1a; 客户&#xff1a;啥破东西啊&#xff0c;这么卡&#xff01; 测试&#xff1a;性能bug已提交。 开发&…

嵌入式工程师如何摸鱼?

有老铁问我&#xff0c;做嵌入式开发要加班吗&#xff1f; 也不知道搞什么鬼&#xff0c;现在的年轻人对加班这么抵触。 我刚做开发那会&#xff0c;啥也不懂&#xff0c;每天基本都要加班到晚上7-9点不等&#xff0c;我并不抵触加班&#xff0c;因为早早回家&#xff0c;也没什…

常见的地图绘制方法,这个包全包了~~

在上一篇介绍完Bokeh精美可视化作品之后&#xff0c;有小伙伴咨询我能不能稍系统的介绍下如何在地图上添加如柱形图等其他元素的付方法&#xff1f; 这就让我想到一个优秀的地图绘制可视化包-R-cartography&#xff0c;虽然之前也有简单介绍过&#xff0c;本期就具体分享下该包…

Axure实现导航栏的展开与收缩

Axure实现导航栏的展开与收缩 一、概要介绍二、设计思路三、Axure制作导航栏四、技术细节五、小结 一、概要介绍 使用场景一般是B端后台系统需要以导航栏的展开与收缩实现原型的动态交互&#xff0c;主要使用区域是左边或者顶部的导航栏展开与收缩&#xff0c;同一级导航下的小…

【六】fastapi+vue前后端分离项目

前端代码 https://gitee.com/feiminjie/helloworldfront 后端代码 https://gitee.com/feiminjie/helloworld 整体效果 首页 用例管理页 用例详情页

在vue中发现一个prop新的写法在官方文档没有,查百度不行,还有什么其他方法排查不

先看图&#xff0c;最近在接手一个同事的代码&#xff0c;发现prop有这样的写法&#xff1a; 我自己查了官网&#xff0c;以及百度都没有找到这种写法。这时我灵机一动&#xff0c;想到一个方法&#xff0c;vscode有内置的typesscript&#xff0c;自然有prop类型推断&#xff0…

我用这10招,能减少了80%的BUG

前言 对于大部分程序员来说&#xff0c;主要的工作时间是在开发和修复BUG。 有可能修改了一个BUG&#xff0c;会导致几个新BUG的产生&#xff0c;不断循环。 那么&#xff0c;有没有办法能够减少BUG&#xff0c;保证代码质量&#xff0c;提升工作效率&#xff1f; 答案是肯…

:has()伪类使用

下面的 CSS 代码表示如果 <a> 元素里面有 <img> 元素&#xff0c;则这个 <a> 元素就会匹配。 a:has(img) { display: block; } 我们可以使用这个选择器轻松区分是文字链接还是图像链接 a:has(> img) { display: block; } 表示匹配子元素是 <img>…

NineData正式将SQL开发正式升级为数据库DevOps

NineData SQL 开发早期主要提供 SQL 窗口&#xff08;IDE&#xff09;功能&#xff0c;产品经过将近两年时间的打磨&#xff0c;新增了大量的企业级功能&#xff0c;时至今日已经服务了上万开发者&#xff0c;覆盖了数据库设计、开发、测试、变更等生命周期的功能。 为了让企业…

面试:sleep 和 wait

一、共同点 wait(),wait(long)和sleep(long)的效果都是让当前线程暂时放弃CPU的使用权&#xff0c;进入阻塞状态 二、不同点 1、方法归属不同 sleep(long)是Thread的静态方法而wait(), wait(long)都是Object的成员方法&#xff0c;每个对象都有 2、醒来的时机不同 执行sleep(l…

2024第十五届蓝桥杯JavaB组省赛部分题目

目录 第三题 第四题 第五题 第六题 第七题 第八题 转载请声明出处&#xff0c;谢谢&#xff01; 填空题暂时可以移步另一篇文章&#xff1a;2024第十五届蓝桥杯 Java B组 填空题-CSDN博客 第三题 第四题 第五题 第六题 第七题 第八题 制作不易&#xff0c;还请点个赞支持…

钉钉OA审批评论接口,如何@ 人并发送通知

钉钉OA审批评论接口&#xff0c;如何 人并发送通 问题描述&#xff1a; 相关接口&#xff1a;https://oapi.dingtalk.com/topapi/process/instance/comment/add 我希望在钉钉oa审批流程中&#xff0c;添加评论的同时通过“”或者其他方式提醒流程发起人去跟进审批工作。 但我…

【算法一则】编辑距离 【动态规划】

题目 给你两个单词 word1 和 word2&#xff0c; 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作&#xff1a; 插入一个字符 删除一个字符 替换一个字符 示例 1&#xff1a;输入&#xff1a;word1 "horse", word2 "…

一篇出色的答辩状,需要在“答”与“辩”两方面下功夫,你做到了吗?

一篇出色的答辩状&#xff0c;需要在“答”与“辩”两方面下功夫&#xff0c;你做到了吗&#xff1f; 在法律诉讼中&#xff0c;答辩状的重要性不言而喻。它不仅是你回应对方指控的主要手段&#xff0c;也是展示你立场和观点的关键平台。在#李秘书讲写作#看来&#xff0c;一篇…

AMEYA360 | 纳芯微发布首款1200V SiC MOSFET

纳芯微推出1200V首款SiC MOSFET NPC060N120A系列产品&#xff0c;该产品RDSon为60mΩ&#xff0c;具有通孔式TO-247-4L与表面贴装TO-263-7L两种封装形式&#xff0c;可提供车规与工规两种等级。 纳芯微的碳化硅MOSFET具有卓越的RDSon温度稳定性、门极驱动电压覆盖度更宽、具备高…