CSS 图片水下效果
CSS Image Underwater effect
所以我目前正在尝试使用 Css 关键帧在某些图像上实现类似水下的效果。我正在使用 "transform: skew" 来执行此操作,但结果不是很好,而且看起来一点也不自然。我希望图像以流畅的方式移动和扭曲,就好像它们在水下一样。
我的Css:
@keyframes imgevento{
0%, 100% {
transform: skew(0deg, 0deg);
}
50% { transform: skew(2deg, 2deg);
}
}
.imgevento{
transform-origin:50% 50%;
animation:imgevento 6s linear alternate infinite;
}
有没有什么办法可以用css达到我想要的效果?
我认为一个关键是将扭曲的元素放入容器元素中并隐藏溢出,以创建更逼真的视野。
除了 skew
之外,一些额外的过滤器、变换和潜在的 CSS 渐变可以应用于某些 pseudo-elements 以创建一些 'light' 效果。
效果也可能取决于所使用的图像 - 增强或淡出图像的特定元素,如光线等。
这只是一个开始,使用容器裁剪视图,以及一些 saturate
和 invert
过滤器。最好在全屏模式下观看以获得 沉浸式 体验。
html,
body {
padding: 0;
margin: 0;
overflow-x: hidden;
max-width: 570px;
}
.imgevento-container {
overflow: hidden;
}
.imgevento {
transform-origin: center center;
animation: imgevento 6s ease-in-out alternate infinite;
}
@keyframes imgevento {
0%,
100% {
transform: skew(0deg, 0deg) scale(1.35, 1.35);
filter: saturate(100%) invert(0%);
}
25% {
filter: saturate(180%) invert(10%);
}
50% {
transform: skew(2deg, 2deg) scale(1.35, 1.35);
filter: saturate(100%) invert(0%);
}
75% {
filter: saturate(150%) invert(20%);
}
}
<div class="imgevento-container">
<img class="imgevento" src="https://i.imgur.com/fypMB4q.jpg" />
</div>
所以我目前正在尝试使用 Css 关键帧在某些图像上实现类似水下的效果。我正在使用 "transform: skew" 来执行此操作,但结果不是很好,而且看起来一点也不自然。我希望图像以流畅的方式移动和扭曲,就好像它们在水下一样。
我的Css:
@keyframes imgevento{
0%, 100% {
transform: skew(0deg, 0deg);
}
50% { transform: skew(2deg, 2deg);
}
}
.imgevento{
transform-origin:50% 50%;
animation:imgevento 6s linear alternate infinite;
}
有没有什么办法可以用css达到我想要的效果?
我认为一个关键是将扭曲的元素放入容器元素中并隐藏溢出,以创建更逼真的视野。
除了 skew
之外,一些额外的过滤器、变换和潜在的 CSS 渐变可以应用于某些 pseudo-elements 以创建一些 'light' 效果。
效果也可能取决于所使用的图像 - 增强或淡出图像的特定元素,如光线等。
这只是一个开始,使用容器裁剪视图,以及一些 saturate
和 invert
过滤器。最好在全屏模式下观看以获得 沉浸式 体验。
html,
body {
padding: 0;
margin: 0;
overflow-x: hidden;
max-width: 570px;
}
.imgevento-container {
overflow: hidden;
}
.imgevento {
transform-origin: center center;
animation: imgevento 6s ease-in-out alternate infinite;
}
@keyframes imgevento {
0%,
100% {
transform: skew(0deg, 0deg) scale(1.35, 1.35);
filter: saturate(100%) invert(0%);
}
25% {
filter: saturate(180%) invert(10%);
}
50% {
transform: skew(2deg, 2deg) scale(1.35, 1.35);
filter: saturate(100%) invert(0%);
}
75% {
filter: saturate(150%) invert(20%);
}
}
<div class="imgevento-container">
<img class="imgevento" src="https://i.imgur.com/fypMB4q.jpg" />
</div>