无div纯css实现一个小岛动画效果

代码语言:html

所属分类:布局界面

代码描述:无div纯css实现一个小岛动画效果

代码标签: css 实现 一个 小岛 动画 效果

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


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

<head>

  <meta charset="UTF-8">
  

  
  
<style>
:root {
  --unit: 1vmin;
  --bg: hsl(30, 50%, 80%);
  --sea: hsl(200, 50%, 40%);
  --sand: hsl(40, 50%, 30%);
  --sun: hsl(35, 90%, 45%);
  --rock: hsl(200, 20%, 25%);
  --mountain--one: hsl(210, 10%, 30%);
  --mountain--two: hsl(210, 10%, 50%);
  --greenery--one: hsl(90, 60%, 40%);
  --greenery--two: hsl(90, 60%, 20%);
  --greenery--three: hsl(90, 60%, 30%);
  --greenery--four: hsl(90, 60%, 45%);
  --tent--one: hsl(40, 20%, 80%);
  --tent--two: hsl(40, 20%, 60%);
  --tree: hsl(30, 20%, 20%);
  --drop--one: hsl(0, 0%, 98%);
  --drop--two: hsl(0, 0%, 93%);
  --drop--three: hsl(0, 0%, 95%);
  --drop--four: hsl(0, 0%, 98%);
  --drop--five: hsl(0, 0%, 96%);
  --drop--six: hsl(0, 0%, 94%);
  --drop--seven: hsl(0, 0%, 92%);
}

body {
  background: var(--bg);
  background-repeat: no-repeat;
  font-size: var(--unit);
}

body:after {
  content: '';
  position: absolute;
  height: 10em;
  width: 16em;
  top: 34%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  background:
    radial-gradient(var(--drop--one) 50%, transparent 50%) 0em 2em / 6em 6em,
    radial-gradient(var(--drop--one) 50%, transparent 50%) 2em 0em / 8em 8em,
    radial-gradient(var(--drop--one) 50%, transparent 50%) 4em 2em / 8em 8em,
    radial-gradient(var(--drop--one) 50%, transparent 50%) 6em 0em / 8em 8em,
    radial-gradient(var(--drop--one) 50%, transparent 50%) 10em 1em / 6em 6em,
    radial-gradient(var(--drop--one) 50%, transparent 50%) 9em 3em / 6em 6em;
  background-repeat: no-repeat;
  -webkit-animation: travel 10s infinite linear, fade 10s infinite linear;
          animation: travel 10s infinite linear, fade 10s infinite linear;
}

@-webkit-keyframes travel {
  from {
    -webkit-transform: translate(-200%, -50%);
            transform: translate(-200%, -50%);
  }
  to {
    -webkit-transform: translate(100%, -50%);
            transform: translate(100%, -50%);
  }
}

@keyframes travel {
  from {
    -webkit-transform: translate(-200%, -50%);
            transform: translate(-200%, -50%);
  }
  to {
    -webkit-transform: translate(100%, -50%);
            transform: translate(100%, -50%);
  }
}
@-webkit-keyframes fade {
  0%, 10%, 90%, 100% {
    opacity: 0;
  }
  40%, 60% {
    opacity: 1;
  }
}
@keyframes fade {
  0%, 10%, 90%, 100% {
    opacity: 0;
  }
  40%, 60% {
    opacity: 1;
  }
}

body:before {
  --waterfall--drop-one: radial-gradient(var(--drop--one) 50%, transparent 50%) 29.5em 38em / 4em 4em;
  --waterfall--drop-two: radial-gradient(var(--drop--two) 50%, transparent 50%) 31.5em 37em / 4em 4em;
  --waterfall--drop-three: radial-gradient(var(--drop--three) 50%, transparent 50%) 33.5em 38em / 4em 4em;
  --waterfall--drop-four: radial-gradient(var(--drop--four) 50%, transparent 50%) 34.5em 37em / 4em 4em;
  --waterfall--drop-five: radial-gradient(var(--drop--five) 50%, transparent 50%) 35.5em 38em / 4em 4em;
  --waterfall--drop-six: radial-gradient(var(--drop--six) 50%, transparent 50%) 37.5em 37em / 4em 4em;
  --waterfall--drop-seven: radial-gradient(var(--drop--seven) 50%, transparent 50%) 35.5em 38em / 4em 4em;
  --waterfall--drop-eight: radial-gradient(var(--drop--seven) 50%, transparent 50%) 31em 38em / 4em 4em;
  --waterfall--drop-nine: radial-gradient(var(--drop--seven) 50%, transparent 50%) 38em 38em / 4em 4em;
  --tree--leaves-one: radial-gradient(var(--greenery--one) 50%, transparent 50%) 28em 20em / 3em 3em;
  --tree--leaves-three: radial-gradient(var(--greenery--three) 50%, transparent 50%) 29em 19em / 4em 4em;
  --tree--leaves-two: radial-gradient(var(--greenery--two) 50%, transparent 50%) 28em 18em / 5em 5em;
  --tree--trunk: linear-gradient(var(--tree), var(--tree)) 30em 21.5em / 1em 3em;
  --waterfall--main: linear-gradient(var(--sea), var(--sea)) 32em 24em / 8em 16em;
  --waterfall--stream: repeating-linear-gradient(90deg, var(--sea) 0 15%, hsla(0, 0%, 100%, 0.75) 15% 20%) 32em 24em / 8em 16em;
  --tent-front--left: linear-gradient(65deg, var(--tent--one) 50%, transparent 50%) 26.5em 23em / 0.5em 1em;
  --tent-front--right: linear-gradient(-65deg, var(--tent--o.........完整代码请登录后点击上方下载按钮下载查看

网友评论0