<svg id="svg">
  <defs>
    <filter id="disFilter">
      <feTurbulence type="turbulence" baseFrequency="0.01" numOctaves="3" seed="1" result="turbulence">
        <animate attributeName="baseFrequency" values="0.01;0.005;0.01;" dur="30s" begin="0"
          repeatCount="indefinite" />
      </feTurbulence>
      <feDisplacementMap in="SourceGraphic" in2="turbulence" scale="30" xChannelSelector="R" yChannelSelector="B"
        result="displacement" />
    </filter>
  </defs>
  <g id="background">
    <image xlink:href="https://klevron.github.io/codepen/misc/water-texture.jpg" x="0" y="0"
      height="100%" width="100%" preserveAspectRatio="xMidYMid slice" />
  </g>
</svg>

<div id="main">
  <h1>SVG Water Effect</h1>
  <p>Simply made ^^ with SVG Filters : </p>
  <ul>
    <li>Animated <a href="https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feTurbulence"
        target="_blank">feTurbulence</a>,</li>
    <li><a href="https://developer.mozilla.org/en-US/docs/Web/SVG/Element/feTurbulence"
        target="_blank">feDisplacementMap</a>,</li>
    <li>and a background image.</li>
  </ul>
</div>
body {
      margin: 0;
      width: 100%;
      height: 100%;
      font-family: 'Poppins', sans-serif;
    }

    #svg {
      position: fixed;
      width: 100%;
      height: 100%;
    }

    #background {
      filter: url("#disFilter");
    }

    #main {
      position: absolute;
      width: 100%;
      height: 100%;
      border: 15px solid #fff;
      box-sizing: border-box;
      padding: 4%;
      text-shadow: 1px 1px 5px #fff;
      overflow: hidden;
    }

External CSS

  1. https://fonts.googleapis.com/css?family=Poppins

External JavaScript

This Pen doesn't use any external JavaScript resources.