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