store/wave1

399 lines
4.6 KiB
Plaintext

<!DOCTYPE html>
<html>
<head>
<style>
body {
margin: 0;
padding: 0;
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
background: linear-gradient(135deg, #0c2461, #1e3799);
font-family: 'Arial', sans-serif;
overflow: hidden;
}
.container {
position: relative;
width: 600px;
height: 400px;
}
/* 文字样式 */
.text {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 5rem;
font-weight: bold;
color: #ffffff;
text-align: center;
z-index: 10;
text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}
/* 圆弧容器 */
.arc-container {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 400px;
height: 400px;
pointer-events: none;
}
/* 圆弧路径 */
.arc-path {
fill: none;
stroke: none;
}
/* 水波遮罩(会沿着圆弧移动) */
.water-mask {
fill: url(#water-gradient);
filter: url(#water-wave-filter);
opacity: 0;
animation: water-rise 4s ease-in-out infinite;
}
/* 水波上升动画 */
@keyframes water-rise {
0% {
opacity: 0;
transform: translateY(100%);
}
30% {
opacity: 1;
}
70% {
opacity: 1;
}
100% {
opacity: 0;
transform: translateY(-100%);
}
}
/* 装饰性圆弧线 */
.guide-line {
fill: none;
stroke: rgba(255, 255, 255, 0.2);
stroke-width: 1;
stroke-dasharray: 5, 5;
}
</style>
</head>
<body>
<div class="container">
<div class="text">WATER WAVE</div>
<!-- SVG 圆弧水波 -->
<svg class="arc-container" viewBox="0 0 400 400">
<!-- 定义水波滤镜 -->
<defs>
<!-- 水波扭曲滤镜 -->
<filter id="water-wave-filter" x="-20%" y="-20%" width="140%" height="140%">
<feTurbulence
type="fractalNoise"
baseFrequency="0.01 0.03"
numOctaves="2"
seed="1"
result="turbulence"
>
<animate
attributeName="baseFrequency"
dur="3s"
values="0.01 0.03;0.02 0.04;0.01 0.03"
repeatCount="indefinite"
/>
</feTurbulence>
<feDisplacementMap
in="SourceGraphic"
in2="turbulence"
scale="15"
xChannelSelector="R"
yChannelSelector="G"
/>
<feGaussianBlur stdDeviation="1" />
<!-- 高光效果 -->
<feSpecularLighting
surfaceScale="3"
specularConstant="0.8"
specularExponent="10"
lighting-color="#ffffff"
result="specular"
>
<fePointLight x="200" y="-100" z="200"/>
</feSpecularLighting>
<feComposite
in="specular"
in2="SourceGraphic"
operator="in"
result="highlight"
/>
<feBlend mode="screen" in="SourceGraphic" in2="highlight"/>
</filter>
<!-- 水波渐变 -->
<linearGradient id="water-gradient" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#00b4d8" stop-opacity="0.8" />
<stop offset="50%" stop-color="#0077b6" stop-opacity="0.6" />
<stop offset="100%" stop-color="#0096c7" stop-opacity="0.4" />
</linearGradient>
<!-- 圆弧遮罩 -->
<mask id="arc-mask">
<path
class="arc-path"
d="M 100,200 A 100,100 0 0,1 300,200"
stroke="white"
stroke-width="50"
stroke-linecap="round"
/>
</mask>
</defs>
<!-- 参考圆弧线 -->
<path
class="guide-line"
d="M 100,200 A 100,100 0 0,1 300,200"
/>
<!-- 水波区域(应用遮罩和滤镜) -->
<g mask="url(#arc-mask)">
<!-- 主要水波 -->
<rect
class="water-mask"
x="50"
y="0"
width="300"
height="400"
transform="rotate(-10 200 200)"
/>
<!-- 辅助水波(延迟) -->
<rect
class="water-mask"
x="50"
y="0"
width="300"
height="400"
transform="rotate(-10 200 200)"
style="animation-delay: 1s;"
/>
<!-- 第三个水波 -->
<rect
class="water-mask"
x="50"
y="0"
width="300"
height="400"
transform="rotate(-10 200 200)"
style="animation-delay: 2s;"
/>
</g>
</svg>
</div>
</body>
</html>