0

0

如何用SVG制作酷炫动态图标?(代码实例)

青灯夜游

青灯夜游

发布时间:2018-09-11 16:18:21

|

4671人浏览过

|

来源于php中文网

原创

本章给大家介绍在html5中如何用svg制作酷炫动态图标?(代码实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

一、基本图形元素

  svg有一些预定义的形状元素:矩形,圆形,椭圆,直线,折线,多边形,路径和文本




    
    

    
    

    
    

    
    

    
    Try SVG

二、样式与效果 

svg元素的样式可以写成标签的属性,也可以写在style里面。下面是一些主要的样式属性:

   stroke: 笔触颜色
   stroke-width:笔触宽度
   stroke-opacity:笔触的透明度
   fill:填充色,即background
   fill-opacity:填充色的透明度
   transform:图形变换,类似css3 transform

svg还支持很多滤镜效果,能做渐变、阴影、模糊、图像混合等等。不需要了解那么多,例如要画几个彩色圆圈,用circle 配合fill 即可。

注意:transform 默认以svg左上角为基点,而不是圆心或其他中心。左上角是svg坐标系原点。了解transform和坐标系统,可以参考 这里。

三、辅助元素

svg有几个辅助元素:。它们不代表具体形状,而是帮助进行图形元素的分组管理、重复使用等。具体介绍可以参考 这里。

     元素通常用来对相关图形元素进行分组,以便统一操作,比如旋转,缩放或者添加相关样式等。
     实现SVG现有图形的重用,可以重用单个SVG图形元素,也可以重用定义的组元素。
     内部定义的元素不会直接显示,可以不用事先定义样式,而是在使用实例化的时候再定义。
     能够创建自己的视窗,兼具的分组功能和初始不可见的特性。

对于上面提到的transform基点问题,可以通过嵌套标签并偏移的位置,进而重设基点。如下画出几个水平排列的圆圈,并设置不同的缩放尺寸


    
        
    
    
        
    
    
        
    
    
        
    

四、动画的实现

svg的动画效果是基于动画标签元素实现的:

  实现单属性的过渡效果;
    实现transform变换动画效果;
    实现路径动画效果。

svg的写法很灵活,样式可以写成标签属性也可以写在style里面,动画标签可以通过xlink指定元素,也可以写在动画元素的内部。如下演示animateTransform的xlink写法:


    
    
        attributeName="transform"  
        type="scale"  
        begin="0s"    
        dur="3s"      
        from="1"      
        to="2"        
        repeatCount="indefinite"   
    />

上例的动画是A到B的过渡,要形成顺畅的循环,至少要定义三个关键点。animateTransform支持更多更灵活的属性设置:

LongCat AI
LongCat AI

美团推出的AI对话问答工具

下载

values:多个关键点的值,替代from和to,例如 values="0;1;0" 

keyTimes:跟values对应,各个点的时间点

calcMode:动画快慢方式。discrete | linear | paced | spline

keySplines:设置运动的贝塞尔控制点,calcMode为spline时有效

五、代码实例

circle画圆,fill着色,用g标签包裹并定位,transform设置初始形变,animateTransform设置动画。现在来看代码,相信不会再是一头雾水了:


    
        
            
        
    
    
        
            
        
    
    
        
            
        
    
    
        
            
        
    

效果图:

8.jpg

也可以用js控制svg的属性,控制svg的动画过程,做成能响应点击等事件的图标按钮。

相关专题

更多
云朵浏览器入口合集
云朵浏览器入口合集

本专题整合了云朵浏览器入口合集,阅读专题下面的文章了解更多详细地址。

0

2026.01.20

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

20

2026.01.20

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

62

2026.01.19

java用途介绍
java用途介绍

本专题整合了java用途功能相关介绍,阅读专题下面的文章了解更多详细内容。

87

2026.01.19

java输出数组相关教程
java输出数组相关教程

本专题整合了java输出数组相关教程,阅读专题下面的文章了解更多详细内容。

39

2026.01.19

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

10

2026.01.19

xml格式相关教程
xml格式相关教程

本专题整合了xml格式相关教程汇总,阅读专题下面的文章了解更多详细内容。

13

2026.01.19

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

19

2026.01.19

微信聊天记录删除恢复导出教程汇总
微信聊天记录删除恢复导出教程汇总

本专题整合了微信聊天记录相关教程大全,阅读专题下面的文章了解更多详细内容。

160

2026.01.18

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
svg中文手册
svg中文手册

共0课时 | 0人学习

SVG 教程
SVG 教程

共20课时 | 10.4万人学习

Node.js 教程
Node.js 教程

共57课时 | 9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号