CSS和SVG制作RGB分离抖动效果

当前位置:主页 > CSS3库 > CSS3动画 > CSS和SVG制作RGB分离抖动效果
CSS和SVG制作RGB分离抖动效果
分享:

    插件介绍

    这是一款CSS和SVG制作RGB分离抖动效果。该CSS和SVG制作的RGB分离抖动效果通过CSS控制图片的filter属性,利用SVG,制作出非常炫酷的效果。

    浏览器兼容性

    浏览器兼容性
    时间:03-04
    阅读:
简要教程

这是一款CSS和SVG制作RGB分离抖动效果。该CSS和SVG制作的RGB分离抖动效果通过CSS控制图片的filter属性,利用SVG,制作出非常炫酷的效果。

使用方法

HTML代码
<img src="demo.jpg">

<svg style="position: fixed; z-index: -10000;">
    <defs>
        <filter id="anaglyph">
            <feOffset result="offOut" in="SourceGraphic" dx="20" dy="0">
                <animate attributeName="dx" dur="5s" values=" 0; 25;0; -25; 0" repeatCount="indefinite"></animate>
            </feOffset>
            <feOffset result="off2Out" in="SourceGraphic" dx="-20" dy="0">
                <animate attributeName="dx" dur="5s" values=" 0; -25;0; 25; 0" repeatCount="indefinite"></animate>
            </feOffset>
            <feColorMatrix result="matrixOut" in="offOut" type="matrix" values="0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.4 0" />
            <feColorMatrix result="matrix2Out" in="off2Out" type="matrix" values="1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.4 0" />
            <feBlend result="blend1" in="matrix2Out" in2="SourceGraphic" mode="normal" />
            <feBlend in="matrixOut" in2="blend1" mode="normal" />
        </filter>
    </defs>
</svg>
		

CSS代码

img {
  aspect-ratio: 1;
  max-width: 100%;
  height: auto;
  filter: url("#anaglyph");
  border-radius: var(--radius);
}

main {
  overflow: hidden;
  border-radius: var(--radius);
}

:root {
  --radius: 2rem;
}

* {
  box-sizing: border-box;
}

body {
  background-color: #041827;
  color: white;
  display: grid;
  place-items: center;
  min-height: 100vh;
  min-height: 100dvh;
  padding: 0;
  margin: 0;
}
		

codepen网址:https://codepen.io/rodzyk/pen/dyQMGdb