как анимировать svg-фильтр feComponentTransfer?

#jquery #html #css #svg

#jquery #HTML #css #svg

Вопрос:

Кто-нибудь знает, как использовать анимированный тег в feFuncRGB в feComponentTransfer? У меня есть SVG-фильтр, и мне нужно показать / скрыть его по щелчку мыши с некоторым переходом.

что-то вроде этого:

 <svg xmlns="http://www.w3.org/2000/svg" id="svg-filters">
    <filter id="duotone">
        <feComponentTransfer color-interpolation-filters="sRGB" result="duotone_cyan_blue">
            <feFuncR type="table" tableValues="0.2489 0.9589">
                <animate 
                id="animate"
                attributeName="tableValues" 
                dur="2s" 
                from="0 1" 
                to="0.2489 0.9589" 
                fill="freeze" 
                />
            </feFuncR>
        </feComponentTransfer>
    </filter>
</svg>
  

То же самое для feFuncG и feFuncB

 $('img').click( function() {
  $("#animate").beginElement();
});
  

Спасибо!

Ответ №1:

Одним из решений было бы использование svg-изображения следующим образом:

 svg.addEventListener("click",() =>{
  _animate.beginElement();
})  
 <svg xmlns="http://www.w3.org/2000/svg" id="svg" width="300" height="300" >
    <filter id="duotone">
        <feComponentTransfer color-interpolation-filters="sRGB" result="duotone_cyan_blue">
            <feFuncR type="table" tableValues="0 1">
               <animate 
                id="_animate"
                attributeName="tableValues" 
                dur="2s" 
                values="0 1;1 0" 
                fill="freeze"
                begin="svg.click"
                />
            </feFuncR>
        </feComponentTransfer>
    </filter>
  
  <image xlink:href="https://s3-us-west-2.amazonaws.com/s.cdpn.io/222579/darwin300.jpg" width="300" height="300" filter="url(#duotone)"></image>
</svg>