#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>