div+css实现链条打结动画效果代码

代码语言:html

所属分类:动画

代码描述:div+css实现链条打结动画效果代码

代码标签: div css 链条 打结 动画

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

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

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

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

body {
  background-color: #111;
  min-height: 100vh;
  display: grid;
  place-items: center;
}

.container {
  width: 40em;
  height: 30em;
  background-color: #000;
  outline: 1px solid #fff;
  display: grid;
  place-items: center;
  perspective: 800px;
  overflow: hidden;

  *:not(:empty) {
    transform-style: preserve-3d;
  }
}

.scene {
  --duration: 12s;
  
  position: relative;
  -webkit-animation: scene calc(var(--duration) * 3) linear infinite;
          animation: scene calc(var(--duration) * 3) linear infinite;
  
}

@-webkit-keyframes scene {
  from { transform: rotateZ(-30deg) rotateY(30deg) rotateX(0deg); }
  to { transform: rotateZ(-30deg) rotateY(30deg) rotateX(360deg); }
}

@keyframes scene {
  from { transform: rotateZ(-30deg) rotateY(30deg) rotateX(0deg); }
  to { transform: rotateZ(-30deg) rotateY(30deg) rotateX(360deg); }
}

.link {
  --linkDelay: calc(var(--duration) / -5 * var(--l));
  
  position: absolute;
  inset: -1em -6em;
  transform-origin: 50% -2em;
  -webkit-animation:
    linkMove var(--duration) var(--linkDelay) ease-out infinite,
    linkRotate var(--duration) var(--linkDelay) linear infinite;
          animation:
    linkMove var(--duration) var(--linkDelay) ease-out infinite,
    linkRotate var(--duration) var(--linkDelay) linear infinite;
  
  div {
    position: absolute;
    width: 2em; height: 100%;
  }
  
  .front, .front div {
    --_delay: calc(var(--linkDelay) - (var(--duration) / 96 * var(--d, 0)));
    
    left: 100%;
    transform-origin: bottom left;
    -webkit-animation: front var(--duration) var(--_delay) ease-in-out infinite;
            animation: front var(--duration) var(--_delay) ease-in-out infinite;
  }
  
  .back, .back div {
    right: 100%;
    transform-origin: bottom right;
    -webkit-animation: back var(--duration) var(--linkDelay) ease-in-out infinite;
            animation: back var(--duration) var(--linkDelay) ease-in-out infinite;
  }
    
  .back .last {
    width: 10em;
  }
  
  i {
    position: absolute;
    inset: 0;
    background-color: hsl(.........完整代码请登录后点击上方下载按钮下载查看

网友评论0