使用JavaScript跨浏览器的Webkit Backdrop Filter

时间:2016-03-12 23:13:44

标签: javascript css3 webkit

我已经看到了这个新的

的惊人演示
-webkit-backdrop-filter: blur(Xpx);

我想问一下如何使用JavaScript重现这一点,至少可以在Chrome中使用,但也可能在Firefox中使用?

演示: https://webkit.org/demos/backdrop-filter/

1 个答案:

答案 0 :(得分:2)

您可以尝试使用svg过滤器:

http://codepen.io/MakiBM/pen/YGEgQK?editors=1000

<svg x="0px" y="0px" width="500px" height="500px" viewbox="0 0 500 500">
  <defs>
    <filter id="blur" x="0%" y="0%" height="100%" width="100%" primitiveUnits="userSpaceOnUse">
      <feGaussianBlur x="50" y="50" width="400" height="400" stdDeviation="10" in="SourceGraphic" result="blurImg"/>
      <feComponentTransfer in="blurImg" result="opaqueBlur">
        <feFuncA type="linear" intercept="1"/>
      </feComponentTransfer>
      <feBlend mode="normal" in="opaqueBlur" in2="SourceGraphic"/>
    </filter>
  </defs>

   <image filter="url(#blur)" x="10" y="10" id="svg-image" width="100%" height="100%" xlink:href="https://www.nycgovparks.org/photo_gallery/full_size/14413.jpg" />

    <rect x="50" y="50" height="400" width="400" fill="rgb(255,255,255)" fill-opacity="0.2" />
</svg>

我没有使用crossbrowser检查,但支持非常广泛: http://caniuse.com/svg-filters