2016-09-05 86 views
3

工作,我有一個相當簡單的設置,我想通過使用SVG濾鏡改變SVG圖像的顏色:SVG feColorMatrix不會在Safari

<svg style="height: 0;"> 
    <filter id="hover" color-interpolation-filters="sRGB" 
      x="0" y="0" height="100%" width="100%"> 
    <feColorMatrix type="matrix" 
        values=" 
          0 0 0 0 0 
          0 0 0 0 0.68 
          0 0 0 0 0.94 
          0 0 0 1 0 
          " 
        /> 
    </filter> 
</svg> 

<img style="-webkit-filter: url('#hover'); filter: url('#hover');" 
    src="https://upload.wikimedia.org/wikipedia/commons/8/81/Wikimedia-logo.svg" alt="" /> 

Please see the attached codepen for details

它的工作在Firefox和鉻,但我似乎無法在safari中找到問題。據caniuse說,支持應該沒問題。

回答

5

因此,這看起來很愚蠢 - 但它是您的過濾器中最初的換行符,它會拋棄它。將其更正爲:

<feColorMatrix type="matrix" 
       values="0 0 0 0 0 
         0 0 0 0 0.68 
         0 0 0 0 0.94 
         0 0 0 1 0 
         " 
       /> 

...完美地工作。 (順便說一句,IE在任何位置都無法處理值數組中的換行符 - 您必須將它們全部放在一行上。)

+0

令人驚訝......令人驚訝的是,矩陣中的換行符可能會中斷stuff> _ <...非常感謝您的啓發! :) – nirazul

+0

哇!謝謝!! – Denis