文章插图
1.2、动画SVG 本身就是一个HTML元素,因此动画可以用CSS的动画来实现(参考 CSS动画),SVG中也有专门用于实现动画的<animate>
子元素 。这里示例采用JavaScript+transform
变换实现旋转效果 。
<svg version="1.1" baseProfile="full" width="300" height="200" xmlns="http://www.w3.org/2000/svg"> <circle cx="150" cy="100" r="80" fill="green" /> <circle cx="150" cy="100" r="70" fill="#fff" /> <text class="svgc" x="150" y="125" font-size="60" text-anchor="middle" fill="orange" >SVG</text> <line class="svgc" x1="0" y1="100" x2="300" y2="100" stroke="white" stroke-width="8" /></svg><script> let svgcs = document.querySelectorAll(".svgc"); //设置中心点 svgcs.forEach(element => {element.setAttribute("transform-origin", '150 100'); }); let deg = 0; setInterval(() => {deg = deg > 360 ? 0 : deg+4;svgcs.forEach(element => {element.setAttribute("transform", `rotate(${deg})`);}); }, 100);</script><!-- 用CSS动画实现的版本 --><style> .svgc {transform-origin: 150px 100px;animation: svgc-routate 2s linear 1s infinite; } @keyframes svgc-routate {from {transform: rotate(0deg);}to {transform: rotate(360deg);} }</style>
【前端图形:SVG与Canvas】
文章插图
1.3、svg工具/资源/库矢量图标资源
- Iconfont-阿里巴巴矢量图标库,功能很强大,及其提供丰富的矢量图标库,提供矢量图标下载、在线存储、格式转换等功能 。应该就这个就够了!
- flaticon,国外的矢量图标库
C
贝塞尔曲线 。所以一般都是用专业工具来绘制< svg>
图形的,也有在线工具 。- 专业工具AI:Adobe Illustrator
- 在线SVG编辑器,Method Draw
- SVGator,一个在线SVG动画制作工具,导入SVG文件,进行可视化的动画制作 。
- 第三方库GSAP,来自GreenSock,可以更简单的实现更丰富的动画效果,不光支持SVG,包括页面中任意可以通过JS访问的元素、属性,都可以实现动画 。
- anime.js,功能强大,非常轻量,压缩后大小9K 。
- SVG动画库:mo.js、SVG.js
<canvas>
元素),提供了一点点API,由JS进行绘制各种图形 。2D的canvas绘制和<SVG>
挺像,都是一些线、矩形、圆、path路径数据 。这里就先简单了解一下,<canvas>功能
是很强大的,很多可视化图表都是基于<canvas>
实现的 。基本特点:
- 双标签,必须包含闭合标签 。标签内可以放提示文字,当浏览器不支持
<canvas>
会显示 。 - 坐标系以左上角为中心点,和SVG一样 。
经验总结扩展阅读
- 前端开发日常——CSS动画无限轮播
- 提高工作效率的神器:基于前端表格实现Chrome Excel扩展插件
- MFC-创建MFC图形界面dll
- Element 前端枚举enum的应用封装
- 基于纯前端类Excel表格控件实现在线损益表应用
- 15 基于SqlSugar的开发框架循序渐进介绍-- 整合代码生成工具进行前端界面的生成
- Java一次返回中国所有省市区三级树形级联+前端vue展示【200ms内】
- .NET 采用 SkiaSharp 生成二维码和图形验证码及图片进行指定区域截取方法实现
- Flask 框架:运用Echarts绘制图形
- 前端程序员学习 Golang gin 框架实战笔记之一开始玩 gin