使用 SVG 实现手写签名动画效果
作者:佚名 来源:小影志 时间:2016-02-01
最近需要一个手写签名动画效果,最后用 SVG 实现咯。
stroke-dasharray
path
的 stroke-dasharray
的属性用来控制线段样式,奇数项定义实线,偶数项定义空白。
stroke-dashoffset
path
的 stroke-dashoffset
定义了线段开始的偏移量。
path.getTotalLength()
获取 path
的长度;
path.getPointAtLength(length)
获取给定长度 length
在 path
的坐标 (x, y);
svg.getBBox()
获取 svg
的原始大小;
实现方法
将 stroke-dasharray
的第二项定义为 path 的长度(path.getTotalLength()
),第一项由 0 变化到长度。
使用 getPointAtLength
获取当前坐标,通过 CSS 应用到笔的元素上,如果 svg
经过了缩放,则使用 getBBox()
计算出比例。
补一个计算当前角度
var currentPoint = path.getPointAtLength(length);
var lastPoint = path.getPointAtLength(length - 1);
angle = Math.atan2(currentPoint.y - lastPoint.y, currentPoint.x - lastPoint.x) * 180 / Math.PI;
相关阅读
- Whats the Closest Google Font? 找到最好的 Google Web 字体
- 完美防止垃圾邮件的6种方式 - 让Spam爬虫空手而归
- 常用 JavaScript 库 CDN 加速服务
- JavaScript and CSS Code Beautifier - 代码格式化高亮扩展
- 【译】使用 Intersection Observer 实现图片延迟加载
- 使用 Web Audio API 播放摩斯密码
- 【译】如何创造带方向感应的纯 CSS 悬停效果
- Kraken.io - 最好用的在线图片压缩工具
- Polyfill.io - 自动化的 JavaScript Polyfill 服务
- 浏览器知道你的哪些信息
更多资讯
-
Whats the Closest Google Font? 找到最好的 Google Web 字体
-
完美防止垃圾邮件的6种方式 - 让Spam爬虫空手而归
-
常用 JavaScript 库 CDN 加速服务
-
JavaScript and CSS Code Beautifier - 代码格式化高亮扩展
-
【译】使用 Intersection Observer 实现图片延迟加载
-
使用 Web Audio API 播放摩斯密码
-
【译】如何创造带方向感应的纯 CSS 悬停效果
-
Kraken.io - 最好用的在线图片压缩工具
-
Polyfill.io - 自动化的 JavaScript Polyfill 服务
-
CSS3介绍
-
Fontmin - 中文 WebFont 子集化生成工具
-
通过 Chrome Workspace 调试本地项目