Как анимировать SVG фильтр FeComponentTransfer? - PullRequest
1 голос
/ 15 апреля 2019

Кто-нибудь знает, как использовать тег animate в 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 Ответ

2 голосов
/ 15 апреля 2019

Одно решение будет использовать изображение 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...