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