svg+css实现游轮日夜交替旅行动画效果代码

代码语言:html

所属分类:动画

代码描述:svg+css实现游轮日夜交替旅行动画效果代码

代码标签: 日夜 交替 旅行 动画 效果

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


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

<head>

  <meta charset="UTF-8">
  

  
  
  
<style>
:root {
  --morning-sky: hsl(1, 70%, 70%);
  --dawn-sky: hsl(326, 26%, 44%);
  --night-sky: hsl(256, 52%, 25%);
  --day-duration: 12s;
  --day-cycle-animation-config: var(--day-duration) ease-in-out infinite;
  --sea-duration: 6s;
  --ship-movement-duration: calc(var(--sea-duration) / 5);
}

body {
  height: 100vh;
  padding: 0;
  margin: 0;
}

.scene {
  height: 100%;
  display: grid;
  place-items: center;
}

svg {
  width: 80%;
  height: 80%;
  padding: 12px;
  box-shadow: 2px 10px 16px 0px rgba(0, 0, 0, 0.6);
  animation: sky var(--day-duration) linear infinite;
}

@keyframes sky {
  0% {
    background: var(--morning-sky);
  }
  20% {
    background: var(--morning-sky);
  }
  35% {
    background: var(--dawn-sky);
  }
  50% {
    background: var(--night-sky);
  }
  70% {
    background: var(--night-sky);
  }
  85% {
    background: var(--dawn-sky);
  }
  100% {
    background: var(--morning-sky);
  }
}

#ship,
#flag {
  animation: ship var(--ship-movement-duration) ease-in-out infinite alternate;
}

@keyframes ship {
  from {
    transform: translateY(0);
  }
  to {
    transform: translateY(4%);
  }
}

#sea {
  animation: sea var(--sea-duration) linear infinite;
}

@keyframes sea {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}

#sea-clone {
  animation: sea-clone var(--sea-duration) linear infinite;
}

@keyframes sea-clone {
  from {
    transform: translateX(100%);
  }
  to {
    transform: translateX(0);
  }
}

#sun {
  left: 50%;
  animation: sun var(--day-cycle-animation-config);
}

@keyframes sun {
  0% {
    transform: translateY(0);
    opacity: 1;
  }
  20% {
    transform: translateY(0);
    opacity: 1;
  }
  50% {
    transform: translateY(100%);
    opacity: 0;
  }
  70% {
    transform: translateY(100%);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}

#moon {
  animation: moon var(--day-cycle-animation-config);
}

@keyframes moon {
  0% {
    transform: translateY(100%);
    opacity: 0;
  }
  20% {
    transform: translateY(100%);
    opacity: 0;
  }
  50% {
    transform: translateY(0);
    opacity: 1;
  }
  70% {
    transform: translateY(0);
    opacity: 1;
  }
  100% {
    transform: translateY(100%);
    opacity: 0;
  }
}
</style>



</head>

<body translate="no" >
  <main class="scene">
      <svg
        width="796"
        height="525"
        viewBox="0 0 796 525"
        fill="none"
        xmlns="http://www.w3.org/2000/svg"
      >
        <g id="undraw_Yacht_re_kkai 1" clip-path="url(#clip0)">
          <path
            id="moon"
            d=&.........完整代码请登录后点击上方下载按钮下载查看

网友评论0