div+css实现滚筒式洗衣机清洗宠物动画效果代码

代码语言:html

所属分类:动画

代码描述:div+css实现滚筒式洗衣机清洗宠物动画效果代码

代码标签: div css 滚筒式 洗衣机 清洗 宠物 动画

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

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

<head>
  <meta charset="UTF-8">

  
  
  
  
<style>
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

:root {
  --timing: 2500ms;
}

body {
  display: grid;
  place-items: center;
  height: 100vh;
  overflow: hidden;
  background-color: #69B6E1;
  font-size: clamp(0.6rem, calc(1vw + 0.1rem), 1.5rem);
}
body * {
  position: absolute;
}
body *::before, body *::after {
  position: absolute;
}

.playground {
  --bottom-elements: 2.4em;
  --main-width: 30em;
  width: var(--main-width);
  height: var(--main-width);
}

/* ----- Shadow ----- */
.shadow {
  width: calc(var(--main-width) + 5em);
  height: 1em;
  border-radius: 0.5em;
  bottom: 2em;
  left: 0.5em;
  background-color: rgba(0, 0, 0, 0.2);
  z-index: -1;
}

/* ----- Washing machine ----- */
.washing-machine {
  --delay-animation: 500ms;
  width: 17.5em;
  height: 25em;
  animation: shake-machine var(--time, 2500ms) var(--delay, 0ms) infinite ease;
  bottom: var(--bottom-elements);
  left: 4em;
  border-radius: 2.5em 2.5em 1em 1em;
  background: linear-gradient(#F2FBFF 82%, #E5EBEE 82%, #E5EBEE 83%, #F2FBFF 83%);
  box-shadow: 4.25em 0 #C5C7C8;
  z-index: 1;
}
@keyframes shake-machine {
  10% {
    transform: translateY(-0.125em);
  }
  11% {
    transform: translateY(0);
  }
  12% {
    transform: translateY(-0.125em);
  }
  13% {
    transform: translateY(0);
  }
  14% {
    transform: translateY(-0.125em);
  }
  15% {
    transform: translateY(0);
  }
  16% {
    transform: translateY(-0.125em);
  }
  17% {
    transform: translateY(0);
  }
  18% {
    transform: translateY(-0.125em);
  }
  19% {
    transform: translateY(0);
  }
  20% {
    transform: translateY(-0.125em);
  }
  21% {
    transform: translateY(0);
  }
  22% {
    transform: translateY(-0.125em);
  }
  23% {
    transform: translateY(0);
  }
  24% {
    transform: translateY(-0.125em);
  }
  25% {
    transform: translateY(0);
  }
  26% {
    transform: translateY(-0.125em);
  }
  27% {
    transform: translateY(0);
  }
  28% {
    transform: translateY(-0.125em);
  }
  29% {
    transform: translateY(0);
  }
  30% {
    transform: translateY(-0.125em);
  }
  31% {
    transform: translateY(0);
  }
  32% {
    transform: translateY(-0.125em);
  }
  33% {
    transform: translateY(0);
  }
  34% {
    transform: translateY(-0.125em);
  }
  35% {
    transform: translateY(0);
  }
  36% {
    transform: translateY(-0.125em);
  }
  37% {
    transform: translateY(0);
  }
  38% {
    transform: translateY(-0.125em);
  }
  39% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(-0.125em);
  }
  41% {
    transform: translateY(0);
  }
  42% {
    transform: translateY(-0.125em);
  }
  43% {
    transform: translateY(0);
  }
  44% {
    transform: translateY(-0.125em);
  }
  45% {
    transform: translateY(0);
  }
  46% {
    transform: translateY(-0.125em);
  }
  47% {
    transform: translateY(0);
  }
  48% {
    transform: translateY(-0.125em);
  }
  49% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-0.125em);
  }
  51% {
    transform: translateY(0);
  }
  52% {
    transform: translateY(-0.125em);
  }
  53% {
    transform: translateY(0);
  }
}
.washing-machine .board {
  width: 90%;
  height: 2.5em;
  display: flex;
  align-items: center;
  gap: 0.5em;
  padding-inline: 1.5em;
  top: 2.25em;
  left: 5%;
  border-radius: 1em;
  background-color: #E8F1F4;
}
.washing-machine .board .button {
  width: 1.5em;
  height: 0.65em;
  position: static;
  border-radius: 0.15em;
  background-color: #D9DDDF;
  box-shadow: 0.15em 0 #C2C4C6;
}
.washing-machine .board .button:nth-of-type(2) {
  margin-right: auto;
}
.washing-machine .board .button.circle {
  width: 1.2em;
  height: 1.2em;
  border-radius: 50%;
}
.washing-machine .badge {
  width: 3.25em;
  height: 1.85em;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  padding-block: 0.35em;
  bottom: 0.65em;
  right: 2em;
  background-color: #E5EBEE;
  box-shadow: -0.15em 0 #C5C7C8;
  border-radius: 0.25em;
}
.washing-machine .badge::before {
  width: 1.25em;
  height: 0.2em;
  content: "";
  top: -0.2em;
  background-color: #D4D8DA;
  border-radius: 0.05em 0.05em 0 0;
  z-index: -1;
}
.washing-machine .badge .line {
  width: 65%;
  height: 0.175em;
  flex: none;
  position: static;
  border-radius: 0.1em;
  background-color: #D4D8DA;
}

/* ----- Clothes ----- */
.clothes {
  right: -4em;
  bottom: var(--bottom-elements);
}
.clothes .shirt {
  --bg: #FCB900;
  --shadow: #D59800;
  --extra-bg: linear-gradient(transparent, transparent);
  --shadow-size: 85%;
  --height: 0.75em;
  width: 7em;
  height: var(--height);
  position: static;
  border-radius: calc(var(--height) / 2);
  background: var(--extra-bg), radial-gradient(circle calc(var(--height) / 2) at var(--shadow-size) 50%, var(--bg) 100%, transparent 0), linear-gradient(90deg, var(--bg) var(--shadow-size), var(--shadow) var(--shadow-size));
}
.clothes .shirt.orange {
  --bg: #EE6E02;
  --shadow: #C55602;
}
.clothes .shirt.white {
  --extra-bg-color: #CCD0D2;
  --bg: #F7EAEA;
  --shadow: #CCD0D2;
  --extra-bg: linear-gradient(90deg, transparent 60%, var(--extra-bg-color) 60%, var(--.........完整代码请登录后点击上方下载按钮下载查看

网友评论0