花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 145|回复: 43

svgdrawer滤镜指令应用举例(一)

[复制链接]
  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3049

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

    发表于 2024-10-25 12:25 | 显示全部楼层 |阅读模式

    请马上登录,朋友们都在花潮里等着你哦:)

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    一、效果(单击svg画布可暂停、继续动画)

    二、代码

    <script>
    var flag = false; //动画开关
    //加载插件
    var sc = document.createElement('script');
    sc.src = 'https://638183.freep.cn/638183/web/js2024/svgdr_trial.js';
    document.body.appendChild(sc);
    sc.onload = () => {
    	var dr = _dr('msvg'); //声明画笔
    	dr.defs('defs');
    	//制作滤镜 :图片+融合(图片为融合对象,feImage滤镜加一个animate动画)
    	dr.f('blend', `
    	   <feImage x="0" y="50" width="120" height="120" href="https://638183.freep.cn/638183/Pic/2022/feidie.gif" result="img1">
    			<animate attributeName="x" values="0;354;0" dur="20s" repeatCount="indefinite" />
    		</feImage>
    		<feBlend mode="hard-light" in="img1" in2="SourceGraphic"></feBlend>
    	`);
    	//加载图片(被融合底图)
    	dr.image('https://638183.freep.cn/638183/small/playbg1.jpg', 0, 0, 474, 316).set('filter', 'url(#blend)');
    	//画布单击事件 :关闭、开启动画
    	msvg.onclick = () => {
    		dr.play(flag);
    		flag = !flag;
    	};
    };
    </script>
    

    评分

    参与人数 3威望 +110 金钱 +220 经验 +110 收起 理由
    花飞飞 + 30 + 60 + 30 很给力!
    红影 + 50 + 100 + 50 赞一个!
    梦江南 + 30 + 60 + 30 很给力!

    查看全部评分

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3049

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2024-10-25 12:26 | 显示全部楼层
    本帖最后由 马黑黑 于 2024-10-25 18:06 编辑

    说明:

    一、关于 f() 指令 : f(fId, fcode);

    参数 fId 是 filter 滤镜id标识,必须,例如本例自命名的 “blend",它将给 filter 标签加上 id="blend" 属性和属性值,作为后续元素引用滤镜的依据;参数 fcode 是滤镜完整HTML(或称XML、svg)代码,如本例的 feImage、feBlend 两个滤镜代码。本指令,f 来源于 filter 头一个字母,它将创建 filter 标签。过去,filter 标签需要放到 defs 标签内,现在,所有现代浏览器都支持 filter 标签脱离 defs 标签,就是说,f() 指令是否 addTo('defs') 无关紧要,这意味着针对本例,第九行代码是多余的,可以不要,不过适时创建defs标签是好的。

    二、关于 feImage 滤镜

    feImage 滤镜用来加载图片,它有专属的 x、y、width、height、href 等属性,一眼看懂它们的含义。例中的 result 属性是滤镜通用属性,用来指明滤镜表示,相当于其他元素的 id,不过这个标识一般隔离在滤镜之内,是滤镜间彼此识别的标识,本例,result="img1“,img1 就是 feImage 的标识符。

    三、关于 feBlend 滤镜

    feBlend 滤镜是融合滤镜,它用来指明滤镜的作用对象,用 in 和 in2 属性描述,in="img1" 第一个作用对象是滤镜 feImage(result=“img1),in2="SourceGraphic" 标识第二个作用对象是源图像(即使用滤镜元素的图像)。mode 属性是使用什么融合效果的重要属性,详情可参阅 背景混合模式 background-blend-mode 演示 的 16种 blend-mode 值。

    四、引用滤镜

    18行代码是svg实体元素标签 image,它加载一张图片,有自己的 x、y、width、height 属性,并通过 set() 指令设置 filter 属性,'url(#blend)' 是svg引用滤镜标准语法,井号不能少,整个 set() 指令讲给 <image ... /> 标签加上 filter 属性,结果为 <image ... filter="url(#blend)" /> 酱紫。

    五、例中滤镜缘何可以加入动画


    svg滤镜本来就支持动画,因为它有属性,svg动画的 animate动画就是针对元素属性的。

    评分

    参与人数 2威望 +80 金钱 +160 经验 +80 收起 理由
    花飞飞 + 30 + 60 + 30 很给力!
    红影 + 50 + 100 + 50 赞一个!

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-14 08:25
  • 签到天数: 600 天

    [LV.9]以坛为家II

    379

    主题

    1万

    回帖

    3万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女鼠牛虎兔龙蛇马羊猴鸡狗猪缤纷心情心曲飞扬花好月圆飞龙在天音画大师花潮贵宾

    发表于 2024-10-25 17:42 | 显示全部楼层
    欣赏老师新作,辛苦了!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3049

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2024-10-25 18:03 | 显示全部楼层
    梦江南 发表于 2024-10-25 17:42
    欣赏老师新作,辛苦了!

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2024-10-25 18:10 | 显示全部楼层
    去搜了一下,SVG 滤镜的滤镜很多,这里专门讲的是和图片融合的feBlend滤镜,而且还用了个动图,用实例证明了图片可以是动画。
    这个里面有图片融合对象,还有别融合的底图,放在一起,十分清楚。
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2024-10-25 18:13 | 显示全部楼层
    这个还有svg的封装,让实体元素标签 image的加载很方便。
    黑黑辛苦,学习了
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2024-10-25 20:35 | 显示全部楼层
    这个贴子用两张图片滤镜融合,其中飞船小图片进行水平(0;354;0)无限循环运动~
    看着效果完美且简单,完成过程却新颖又巧妙
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2024-10-25 20:51 | 显示全部楼层
    关于 feBlend 滤镜,<feBlend mode="hard-light" in="img1" in2="SourceGraphic"></feBlend>
    用了强光,mode="hard-light这是个滤镜名称,这个能明白。
    后面两个是看了老师的说明,IN和IN2一张是飞船图片,一张是背景图片。。那么,这两个是不是属于必备的两个属性,缺一不可。。
    SourceGraphic这个单词好长啊,是自定义的名称还是固定的名称。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2024-10-25 20:58 | 显示全部楼层
    这个动画的开关也好简洁,看着很舒适~~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3049

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2024-10-25 23:01 | 显示全部楼层
    花飞飞 发表于 2024-10-25 20:58
    这个动画的开关也好简洁,看着很舒适~~

    用户创建的svg可以用,映射的svg用不了它
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2024-10-26 19:21 | 显示全部楼层
    马黑黑 发表于 2024-10-25 23:01
    用户创建的svg可以用,映射的svg用不了它

    我看这个开关很灵光。。。映射的SVG指的是什么来着。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3049

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2024-10-26 20:43 | 显示全部楼层
    花飞飞 发表于 2024-10-26 19:21
    我看这个开关很灵光。。。映射的SVG指的是什么来着。。

    有些应用场景,处于某种需要,它不呈现真实的对象,大家看到的是映射的。比方说沙盒机制,或影子系统机制。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2024-10-26 20:58 | 显示全部楼层
    马黑黑 发表于 2024-10-26 20:43
    有些应用场景,处于某种需要,它不呈现真实的对象,大家看到的是映射的。比方说沙盒机制,或影子系统机制 ...

    看着好像懂了又不太明白。这个得举个例子。。
    贴子都是创建的吧,不存在映射。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3049

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2024-10-26 22:57 | 显示全部楼层
    花飞飞 发表于 2024-10-26 20:58
    看着好像懂了又不太明白。这个得举个例子。。
    贴子都是创建的吧,不存在映射。。。

    在线工具就是映射的,不映射的话实时画面渲染动画时有点问题。因为这是在同一个页面一边输代码一边演示,mxl的工作机制可能存在一个时间差,部分svg动画就会时有时无,所以用了一个映射。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2024-10-27 13:11 | 显示全部楼层
    马黑黑 发表于 2024-10-26 22:57
    在线工具就是映射的,不映射的话实时画面渲染动画时有点问题。因为这是在同一个页面一边输代码一边演示, ...

    在线工具的映射这么好用,保证流畅显示的节奏。。看来这个映射作用还挺大。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3049

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2024-10-27 16:56 | 显示全部楼层
    花飞飞 发表于 2024-10-27 13:11
    在线工具的映射这么好用,保证流畅显示的节奏。。看来这个映射作用还挺大。。。

    有时候映射是必须的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2024-10-27 22:01 | 显示全部楼层
    马黑黑 发表于 2024-10-27 16:56
    有时候映射是必须的

    有时候是啥时候。。有动画的时候吧。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3049

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2024-10-27 22:54 | 显示全部楼层
    花飞飞 发表于 2024-10-27 22:01
    有时候是啥时候。。有动画的时候吧。。

    看需要
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-8-5 16:33
  • 签到天数: 44 天

    [LV.5]常住居民I

    62

    主题

    1万

    回帖

    2万

    积分

    贵宾

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮美女流光溢彩优雅神秘花潮贵宾

    发表于 2024-10-29 09:43 | 显示全部楼层

    不需要的时候是什么时候一旦缺了就进行不下去的时候
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3049

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2024-10-29 21:18 | 显示全部楼层
    花飞飞 发表于 2024-10-29 09:43
    不需要的时候是什么时候一旦缺了就进行不下去的时候

    坑的吧
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|服务支持:DZ动力|huachaowang.com Inc. ( 蜀ICP备17032287号-1 )

    GMT+8, 2025-12-15 12:45 , Processed in 0.110244 second(s), 29 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表