如何制作复杂的svg动画制作软件?

如何使用SVG生成超酷的页面预加载素描动画效果
来源:极客标签&&&时间: 10:31:06&&&阅读数:
[导读] 在线演示1 SVG简介可缩放矢量图形是基于可扩展标记语言(标准通用标记语言的子集),用于描述二维矢量图形的一种图形格式。它由万维网联盟制定,是一个开放标准。2 SVG的特点与其他图像格式相比(比如 JPEG 和
&&&&&&&可缩放矢量图形是基于可扩展标记语言(标准通用标记语言的子集),用于描述二维矢量图形的一种图形格式。它由万维网联盟制定,是一个开放标准。
2.SVG的特点
&&&&&&&与其他图像格式相比(比如 JPEG 和 GIF),使用 SVG 的优势在于:
&&&&&&&SVG图像可通过文本编辑器来创建和修改
&&&&&&&SVG图像可被搜索、索引、脚本化或压缩
&&&&&&&SVG是可伸缩的SVG图像可在任何的分辨率下被高质量地打印
&&&&&&&SVG可在图像质量不下降的情况下被放大
3.浏览器支持
Internet Explorer 9、Firefox、Opera、Chrome以及 Safari支持内联SVG。Internet Explorer 8或更早版本,可通过安装Adobe SVG Viewer以支持SVG。
SVG代码以元素开始,包括开启标签和关闭标签。这是根元素。width和height属性可设置此SVG文档的宽度和高度。version属性可定义所使用的SVG版本,xmlns属性可定义SVG命名空间。
5.SVG制作素描线动画举例
1).首先画一条素描线,如图
<svg version=&1.1&
xmlns=&http://www.w3.org/2000/svg&
viewBox = &0 0 200 100&&
<path fill=&none&
stroke = &#AAA&
stroke-width = &2&
d = &M62.9 14.9c-25-7.74-56.6 4.8-60.4 24.3-3.73 19.6 21.6 35 39.6 37.6 42.8 6.2 72.9-53.4 116-58.9 65-18.2 191 101 215&
&&&&&&&素描线的参数可以使用工具生成
2).SVG实现素描的动画及原理
&&&&&&&stroke-dasharray = &100 10& stroke-dashoffset = &0&
&&&&&&&stroke-dasharray定义了生成线段长度,及其线段和线段之间的缝隙,这里包含两个参数
&&&&&&&stroke-dashoffset定义了从那个位置开始渲染生成线段
3).使用CSS3来实现素描动画效果</path</svg
/*定义keyframe动画*/
/* 添加动画到path元素 */
stroke-dasharray: 265.07;
stroke-dashoffset: 265.07;
animation: dash 3s
/* 支持chrome */
-webkit-animation: dash 3s
@keyframes dash{
stroke-dashoffset: 265.07; /* 这里是svg图形中素描线长度,可以使用js获取 */
stroke-dashoffset: 0;
/* 支持chrome浏览器 */
@-webkit-keyframes dash{
stroke-dashoffset: 265.07; /* 这里是svg图形中素描线长度,可以使用js获取 */
stroke-dashoffset: 0;
4).使用Javascript来调节动画效果的参数
/*定义相关Javascript*/
var current_frame, //定义当前帧
total_frames, //定义全部帧数
path, //定义svg中的唯一path元素
length, //定义path所生成的素描长度
//定义javascript动画句柄
path = document.getElementById(&#39;path&#39;),
length = path.getTotalLength();
//定义初始化方法
var init = function(){
current_frame = 0;
total_frames = 160;
path.style.strokeDasharray = length + &#39; &#39; + //定义dasharray
path.style.strokeDashoffset = //定义dashoffset
handle = 0;
//定义实际的动画绘制方法
var draw = function(){
var progress = current_frame/total_
if(progress&1){ //这里定义完成动画
window.cancelAnimationFrame(handle);
}else{//否则使用reqeuestAnimationFrame来生成动画
current_frame++;
path.style.strokeDashoffset = Math.floor(length*(1 - progress));
handle = window.requestAnimationFrame(draw);
//定义一个重新运行方法
var rerun = function(){
//页面加载即运行
这里主要定义初始化方法和动画绘制的方法,window.requestAnimationFrame(draw);来生成动画。
5).我们选用极客标签的logo,作为原始图片,坐标参数用&Inkscape&工具生成。
当运行动画绘制程序的时候,各条线安装设定的方式进行绘制,我们就看到非常酷的预加载动画了。
手机扫描下方二维码,关注php100官方微信。
同步官网每日更新,为您带来随时随地的资讯与技术信息。更有不定期的互动抽奖活动,赢取实用贴心的小礼物。
除非特别声明,PHP100新闻均为原创或投稿报道,转载请注明作者及原文链接原文地址:
延伸阅读 More
视频教程 Video
网站服务:
会员问题 :
友情链接 :
网站投稿 :
@php100官方
php100官方微信
Copyright (C) 2007-, All Rights Reserved 版权所有 粤ICP备号-4
粤ICP备号-3查看: 1162|回复: 0
HTML5 SVG图形轮廓线条绘制动画插件
该用户从未签到
.jpg (32.02 KB, 下载次数: 12)
13:25 上传
Vivus是一款可以执行SVG路径动画的轻量级。Vivus可以绘制图形的外观。Vivus提供各种不同的动画参数来让你定制你自己的SVG路径动画。
要制作这种SVG线条绘制效果,需要使用CSS 的strokeDashoffset 属性。该属性用于控制SVG图形中每一条边的线条描边的偏移值。我们还需要通过javascript来更新这些值让它们开始动画。
然而,strokeDashoffset属性仅仅在路径元素上起作用。如果SVG图像中有许多复杂的元素,如circle、rect、line、polyline ,那么动画将不能正常执行。为了解决这个问题,插件中提供了另一个可用的类pathformer。该类能够将你的SVG文件中的所有对象都转换为path元素,这样就能够使用strokeDashoffset属性来制作路径动画了。
路径动画总是使用SVG标签中定义的参数来执行绘制动画。
下面是一些你在使用SVG文件时需要注意的问题:
oSVG必须以内联的方式放置在HTML文件中,另外不能使用javascript来操控它。
o所有的元素都必须有stroke属性而且不能填充图形。因为插件只是绘制图形的轮廓而不会去检查它的颜色。例如:fill: &none&; ,stroke: &#FFF&;。
o你应该避免创建隐藏的SVG元素。Vivus会在执行动画前过滤掉一些不合格的元素。如果隐藏SVG没有被过滤掉,在执行路径动画时将会出现一些空白区域和缝隙。
o不允许使用text元素,它们不能被转换为path元素。
Vivus不需要依赖任何js库,你需要做的仅仅是像下边这样调用它:
new Vivus('my-svg-id', {type: 'delayed', duration: 200}, myCallback);
type :类型:string;定义使用哪一种动画类型。可选值:delayed, async, oneByOne 或 script
oduration :类型:integer;动画的持续时间。单位帧。
ostart :类型:string;定义如何触发SVG动画。
delay :类型:integer;SVG动画开始画第一条和最后一条路径之间的时间。
odashGap :类型:integer;dashes之间的空白间距。默认值为2。
oforceRender :类型:boolean;强制浏览器重新绘制所有的路径。默认值为true,只在IE中有效。
oselfDestroy :类型:boolean;移除SVG图形上的所有样式,保留它的原始状态。
插件下载:
(30.54 KB, 下载次数: 314)
13:27 上传
点击文件名下载附件
原文地址:
Powered by有可视化工具可以制作SVG动画吗?_问答_ThinkSAAS
有可视化工具可以制作SVG动画吗?
有可视化工具可以制作SVG动画吗?
类似这样的矢量动画,有什么可视化工具可以制作并直接生成SVG代码吗?
主要用在移动端页面。
SVG工具比较成熟,美术同学的AI可以直出静态SVG,而Flash IDE也可以通过Swiffy插件也可以把矢量动画导出为SVG动画
添加你想要问的问题
PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
官方1群:【已满】
让ThinkSAAS更好,把建议拿来。SVG技术入门:线条动画实现原理 &#8211; WEB骇客

我要回帖

更多关于 svg 动画 的文章

 

随机推荐