CSS图像水下效应

Edu*_*oão 0 css animation image transform keyframe

因此,我正在尝试使用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;
}
Run Code Online (Sandbox Code Playgroud)

无论如何我能用css达到我想要的结果吗?

Bre*_*ody 6

我认为一个关键是将扭曲的元素放入容器元素并隐藏溢出,以创建更真实的视野.

除此之外skew,一些额外的滤镜,变换和可能的CSS渐变可以应用于一些伪元素以创建一些"光"效果.

影响也可能取决于所使用的图像 - 增强或播放图像的特定元素,如光线等.

这只是一个开始,使用容器来裁剪视图,以及一些saturateinvert过滤器.全屏观看,以获得身临其境的体验.

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%);
  }
}
Run Code Online (Sandbox Code Playgroud)
<div class="imgevento-container">
  <img class="imgevento" src="https://i.imgur.com/fypMB4q.jpg" />
</div>
Run Code Online (Sandbox Code Playgroud)