花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 61|回复: 13

svgdr教程·动画

[复制链接]
  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

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

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

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

    x

    动画

    指令:animate()

    参数:name, options

    语法:animate(name, options)

    注意: 本指令返回上文对象,即要运行动画的元素

    参数解释:

    ① name - SVG动画名称,必须,共四种:set、animate、animateMotion、animateTransform
    ② options - 动画属性键值对数据集合,以键值对方式组织,例:{ attributeName: 'transfrom', begin: '0s', ... } * 凡以 {...} 组织键值对数据,健名若出现短横线(例如 stroke-width)的,均应使用小角单或双引号包裹,这是JS相关规则

    下面对四种动画进行演示:

    (一)set 动画 : 为元素的任何属性设定简易动画,效果类似于CSS的:hover简单交互

    //矩形
    dr.rect(10,10,190,100,'gray');
    dr.animate('set', {
    	attributeName: 'fill', /* 填充色动画 */
    	to: 'fuchsia',  /* 变为紫红色 */
    	dur: '1s',  /* 变化过程时长 */
    	begin: '2s; click',  /* 触发机制 :2秒后、单击 */
    });
    //圆 :参照矩形理解动画各参数含义
    dr.circle(300,60, 40, 'teal').animate('set', {
    	attributeName: 'cx',
    	to: 750,
    	dur: '1s',
    	begin: '2s; click',
    });
    	

    效果演示(打开2秒后运行动画,或单击图像触发动画):

    svgdr绘制指令生成的SVG代码:

    (二)animate 动画 :set() 动画的成人版,提供完整的基于元素属性的可控动画,不包含transform形变动画(另开有动画体系)

    svgdr 绘制代码:

    dr.rect(10,10,190,100,'gray').animate('animate', {
    	attributeName: 'fill',
    	to: 'fuchsia',
    	dur: '1s',
    	begin: '2s; click',
    	repeatCount: 10,
    	restart: 'whenNotActive', /* 重启动画 :always | whenNotActive | never */
    });
    dr.circle(300, 60, 40, 'tan').animate('animate', {
    	attributeName: 'cx',
    	values: '300; 750; 300',
    	dur: '2s',
    	begin: '2s; click',
    	repeatCount: 10,
    	restart: 'whenNotActive',
    });
    	

    效果(动画结束后可单击重启动画):

    最终生成的SVG代码:

    (三)animateTransform 动画 :SVG transform 形变动画,包含 rotate、translate、scale 和 skew

    svgdr 绘制代码:

    dr.rect(40,40,100,100,'peru').animate('animateTransform', {
    	attributeName: 'transform',  /* 动画名称永远是 transform */
    	type: 'rotate',  /* 动画类型 : translate | rotate | scale | skew */
    	from: '0 90 90',  /* 旋转原点 :x + width / 2, y + height / 2*/
    	to: '360 90 90',
    	dur: '3s',
    	begin: '2s; click',
    	repeatCount: 10,
    	restart: 'whenNotActive',
    });
    dr.circle(260, 90, 50, 'peru').animate('animateTransform', {
    	attributeName: 'transform',
    	type: 'translate',  /* 平移 */
    	values: '0; 480; 0', /* translate位移距离:从移动0开始,移动480px,再反向移动 */
    	dur: '3s',
    	begin: '2s; click',
    	repeatCount: 10,
    	restart: 'whenNotActive',
    });
    	

    效果演示(动画若已停止可点击元素继续):

    svgdr 绘制指令生成的SVG代码:

    (四)animateMotion 动画 :路径动画,设置元素沿路径运动

    一个简单的实例效果(动画停止后单击元素重启动画):

    svgdr 绘制指令:

    //路径 M 指令规定了元素运动起点,元素实际运动时会受到元素初始位置的影响
    dr.rect(0,0,30,20,'peru').animate('animateMotion', {
    	path: 'M100 100 V320 H400 L200 200 H520 V20 H750 V320',  /* 路径 */
    	dur: '10s',
    	begin: '2s;click',
    	fill: 'freeze',  /* 结束时保持的状态  freeze | remove(缺省默认) */
    	restart: 'whenNotActive',
    	rotate: 'auto', /* 元素是否按路基走向调整自己的朝向 auto | auto-reverse | 角度数值 */
    });
    	

    svgdr生成的SVG代码:

    【说明】animateMotion 路径动画还有一个子标签 mpath 用以取代动画属性 path,svgdr 尚未实现,敬请期待。

    本节的内容,因篇幅关系,未能详细介绍svg动画全方位知识,对svg动画感兴趣的朋友可以查询相关资料进行学习研究并在svgdr中灵活应用。

    返回目录

    评分

    参与人数 4威望 +130 金钱 +260 经验 +130 收起 理由
    泡沫 + 20 + 40 + 20 很给力!
    红影 + 50 + 100 + 50 赞一个!
    冬天的雨 + 30 + 60 + 30 很给力!
    梦江南 + 30 + 60 + 30 很给力!

    查看全部评分

  • TA的每日心情
    开心
    2025-11-30 15:03
  • 签到天数: 743 天

    [LV.9]以坛为家II

    61

    主题

    3992

    回帖

    1万

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪大将风范

    发表于 2024-11-12 13:16 | 显示全部楼层
    感谢马版的教程分享,学习了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-11-27 09:01
  • 签到天数: 591 天

    [LV.9]以坛为家II

    377

    主题

    1万

    回帖

    3万

    积分

    贵宾

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

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

    发表于 2024-11-12 13:44 | 显示全部楼层
    问老师这个路径动画很趣,如果把(四)animateMotion 动画 :路径动画,设置元素沿路径运动,要想把四的路径设置成鱼儿在游哪怎么去变成一条鱼?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-1-10 16:07
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    319

    主题

    1万

    回帖

    2万

    积分

    版主

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

    花潮帅哥蝴蝶情怀心曲飞扬星星情怀七彩绚丽女儿情怀鹰傲苍穹花好月圆飞龙在天大将风范天籁妙音共看流星风雨同行天长地久喜乐安康中秋征文指尖上的流年花潮版主

    发表于 2024-11-12 18:23 | 显示全部楼层
    问好马老师
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-11-17 10:56
  • 签到天数: 1050 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

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

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

    发表于 2024-11-12 19:28 | 显示全部楼层
    四种动画放在一起讲,便于比较和记忆,真好,谢谢黑黑的耐心讲解
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-11-17 10:56
  • 签到天数: 1050 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

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

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

    发表于 2024-11-12 19:35 | 显示全部楼层
    前两个是针对元素的,必须有名称,第三个是固定名称,最后一个好像没名称?
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-11-17 10:56
  • 签到天数: 1050 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

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

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

    发表于 2024-11-12 19:36 | 显示全部楼层
    这个好,已经很全了。这个需要好好学一下
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-1-13 17:25
  • 签到天数: 28 天

    [LV.4]偶尔看看III

    4

    主题

    484

    回帖

    1626

    积分

    金牌会员

    Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60

    多彩人生春风拂面

    发表于 2024-11-12 19:37 | 显示全部楼层
    原来动画可以区分得这么详细,每一种都共同点又有区别之处。。
    最意外的是set 动画,我记得它用来添加设置属性的,摇身一变可以变动态了。。
    身兼多职啊这是。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-1-13 17:25
  • 签到天数: 28 天

    [LV.4]偶尔看看III

    4

    主题

    484

    回帖

    1626

    积分

    金牌会员

    Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60

    多彩人生春风拂面

    发表于 2024-11-12 19:40 | 显示全部楼层
    对其中的重启动画比较感兴趣,想看演示就再来一遍呗。。。
    rotate、translate、scale 和 skew这几种形变动画比较面熟,之前经常见到。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-1-13 17:25
  • 签到天数: 28 天

    [LV.4]偶尔看看III

    4

    主题

    484

    回帖

    1626

    积分

    金牌会员

    Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60

    多彩人生春风拂面

    发表于 2024-11-12 19:44 | 显示全部楼层
    最后沿路径的动画,多了一个fill: 'freeze', 保留最终形态,如果缺省,则回到起点。。这个也是新的。
    看的时候还好奇,这个小长方形块状为啥可以按路径方向调整自己的方向,原来是rotate: 'auto'这一句在起作用。。
    这个路径设横走,竖走,斜走,应该也是为了看清方向变化吧。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

     楼主| 发表于 2024-11-12 21:49 | 显示全部楼层
    泡沫 发表于 2024-11-12 19:44
    最后沿路径的动画,多了一个fill: 'freeze', 保留最终形态,如果缺省,则回到起点。。这个也是新的。
    看的 ...

    是的,为了不一路向北
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-1-13 17:25
  • 签到天数: 28 天

    [LV.4]偶尔看看III

    4

    主题

    484

    回帖

    1626

    积分

    金牌会员

    Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60

    多彩人生春风拂面

    发表于 2024-11-13 11:26 | 显示全部楼层
    马黑黑 发表于 2024-11-12 21:49
    是的,为了不一路向北

    同意
    现在大可不必,因为一路向北可冷了。。
    暖气和空调还是选择开空调
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-11-30 07:45
  • 签到天数: 1655 天

    [LV.Master]伴坛终老

    3024

    主题

    13万

    回帖

    28万

    积分

    管理员

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

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

     楼主| 发表于 2024-11-13 12:25 | 显示全部楼层
    泡沫 发表于 2024-11-13 11:26
    同意
    现在大可不必,因为一路向北可冷了。。
    暖气和空调还是选择开空调

    就这么定了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-1-13 17:25
  • 签到天数: 28 天

    [LV.4]偶尔看看III

    4

    主题

    484

    回帖

    1626

    积分

    金牌会员

    Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60

    多彩人生春风拂面

    发表于 2024-11-13 19:40 | 显示全部楼层

    定个也不是难事儿
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2025-11-30 16:16 , Processed in 0.076904 second(s), 26 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

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