首先,大家需要定义一下水波浪的样式。以一个蓝色的波浪为例,代码如下所示:
.wave { position: relative; height: 50px; width: 100%; background-color: #00bfff; } .wave:before, .wave:after { content: ""; position: absolute; width: 200%; height: 100%; top: 0; left: -50%; z-index: -1; } .wave:before { background-color: rgba(0,191,255,0.2); animation: move-fore 2s linear infinite; } .wave:after { background-color: rgba(0,191,255,0.4); animation: move-back 2s linear infinite; } @keyframes move-fore { 0% { transform: translateX(0) translateZ(0) scaleY(1); } 50% { transform: translateX(50%) translateZ(0) scaleY(0.5); } 100% { transform: translateX(100%) translateZ(0) scaleY(1); } } @keyframes move-back { 0% { transform: translateX(0) translateZ(0) scaleY(1); } 50% { transform: translateX(-50%) translateZ(0) scaleY(1.5); } 100% { transform: translateX(-100%) translateZ(0) scaleY(1); } }
上述代码中,.wave类下有两个伪元素:before和:after,分别代表浪花的前景和背景。通过animation属性的控制,两个元素分别以不同的速度和方向进行移动,形成波动的效果。
在上述代码中,@keyframes关键字定义了两个动画序列。其中,move-fore控制前景的水波动画,负责竖直方向上波动的动态效果;而move-back控制背景的水波动画,负责放大和缩小的动态效果。
除此之外,大家还可以通过调整动画的时间、速度、周期长度等参数,创造出不同的效果。例如,将animation属性的时间改为3s,则波动的周期会变长,波幅会变大。同样的,可以通过调整transform属性的数值,来使波动的幅度和方向发生变化。
总体而言,CSS3技术为网页设计提供了更加灵活和生动的效果展现方式。在水波浪效果中,通过对动画属性和关键帧的控制,可以让网站上的图像、文本、logo等元素呈现出更加丰富多彩的效果,增强用户的视觉体验。