注意:Internet Explorer和Safari不支持SVG濾鏡svg
<defs>、<filter>url
全部互聯網的SVG濾鏡定義在<defs>元素中,<filter>標籤用來定義SVG濾鏡,<filter>標籤使用必須的ID屬性來定義向圖形應用到那個濾鏡中orm
SVG模糊效果xml
<feGaussianBlur>blog
feGaunssianBlur元素是用於建立模糊效果io
SVG代碼:互聯網
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<filter id="f1" x="0" y="0">
<feGaussianBlur in="SourceGraphic" stdDeviation="15" />
</filter>
</defs>
<rect width="90" height="90" stroke="green" stroke-width="3"
fill="yellow" filter="url(#f1)" />
</svg>im
代碼解析:filter
<filter>元素id屬性定義一個濾鏡的惟一名稱db
<feCaussianBlur>元素定義模糊效果
in="SourceGraphic"這個部分定義了由整個圖像建立效果
stdDeviation屬性定義模糊量
<rect>元素的濾鏡屬性用來把元素連接到「f1」濾鏡
SVG陰影
<feOffset>
feOffset元素用於建立陰影效果
實例1
偏移一個矩形(帶<feOffset>),而後混合偏移圖像頂部(含<feBlend>)
SVG代碼:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<filter id="f1" x="0" y="0" width="200%" height="200%">
<feOffset result="offOut" in="SourceGraphic" dx="20" dy="20" />
<feBlend in="SourceGraphic" in2="offOut" mode="normal" />
</filter>
</defs>
<rect width="90" height="90" stroke="green" stroke-width="3"
fill="yellow" filter="url(#f1)" />
</svg>
實例2
偏移圖像能夠變的模糊(含<feGaussianBlur>)
SVG代碼:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<filter id="f1" x="0" y="0" width="200%" height="200%">
<feOffset result="offOut" in="SourceGraphic" dx="20" dy="20" />
<feGaussianBlur result="blurOut" in="offOut" stdDeviation="10" />
<feBlend in="SourceGraphic" in2="blurOut" mode="normal" />
</filter>
</defs>
<rect width="90" height="90" stroke="green" stroke-width="3"
fill="yellow" filter="url(#f1)" />
</svg>
代碼解析
元素的stdDeviation屬性定義了模糊量
實例3
製做一個黑色的陰影
SVG代碼:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<filter id="f1" x="0" y="0" width="200%" height="200%">
<feOffset result="offOut" in="SourceAlpha" dx="20" dy="20" />
<feGaussianBlur result="blurOut" in="offOut" stdDeviation="10" />
<feBlend in="SourceGraphic" in2="blurOut" mode="normal" />
</filter>
</defs>
<rect width="90" height="90" stroke="green" stroke-width="3"
fill="yellow" filter="url(#f1)" />
</svg>
代碼解析:
feOffset元素的屬性改成"SourceAlpha"在Alpha通道使用殘影,而不是整個RGBA像素
實例4
爲陰影塗上一層顏色
SVG代碼:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <defs> <filter id="f1" x="0" y="0" width="200%" height="200%"> <feOffset result="offOut" in="SourceGraphic" dx="20" dy="20" /> <feColorMatrix result="matrixOut" in="offOut" type="matrix" values="0.2 0 0 0 0 0 0.2 0 0 0 0 0 0.2 0 0 0 0 0 1 0" /> <feGaussianBlur result="blurOut" in="matrixOut" stdDeviation="10" /> <feBlend in="SourceGraphic" in2="blurOut" mode="normal" /> </filter> </defs> <rect width="90" height="90" stroke="green" stroke-width="3" fill="yellow" filter="url(#f1)" /> </svg>