如何使用SVG生成超酷的页面预加载素描动画效果_html/css_WEB-ITnose
在线演示
本地下载
1 SVG简介
可缩放矢量图形是基于可扩展标记语言(标准通用标记语言的子集),用于描述二维矢量图形的一种图形格式。它由万维网联盟制定,是一个开放标准。
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。
4 SVG 标签
SVG 代码以
5 SVG 制作素描线动画举例
1)首先画一条素描线 如图:
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 200 100"> <!-- fill属性是否填充 stroke为绘制,颜色#AAAAAA stroke-width为绘制线的粗细 d是具体数据,这里看到的数据代表了坐标,以及折线等等,可以使用工具生成 --> <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"></path> </svg>
素描线的参数可以使用工具生成,
相关课程 基础SVG标签介绍
2)SVG实现素描的动画及原理
stroke-dasharray = "100 10" stroke-dashoffset = "0"
stroke-dasharray定义了生成线段长度,及其线段和线段之间的缝隙 ,这里包含两个参数
stroke-dashoffset定义了从那个位置开始渲染生成线段
相关课程 SVG实现的素描动画模拟效果及其原理
3)使用CSS3来实现素描动画效果
/*定义keyframe动画*/ /* 添加动画到path元素 */ .path{ stroke-dasharray: 265.07; stroke-dashoffset: 265.07; animation: dash 3s linear infinite; /* 支持chrome */ -webkit-animation: dash 3s linear infinite; } @keyframes dash{ from{ stroke-dashoffset: 265.07; /* 这里是svg图形中素描线长度,可以使用js获取 */ } to{ stroke-dashoffset: 0; } } /* 支持chrome浏览器 */ @-webkit-keyframes dash{ from{ stroke-dashoffset: 265.07; /* 这里是svg图形中素描线长度,可以使用js获取 */ } to{ stroke-dashoffset: 0; } }
相关课程 使用CSS3实现素描动画效果
4)使用Javascript来调节动画效果的参数
/*定义相关Javascript*/ var current_frame, //定义当前帧 total_frames, //定义全部帧数 path, //定义svg中的唯一path元素 length, //定义path所生成的素描长度 handle; //定义javascript动画句柄 path = document.getElementById('path'), length = path.getTotalLength(); //定义初始化方法 var init = function(){ current_frame = 0; total_frames = 160; path.style.strokeDasharray = length + ' ' + length; //定义dasharray path.style.strokeDashoffset = length; //定义dashoffset handle = 0; } //定义实际的动画绘制方法 var draw = function(){ var progress = current_frame/total_frames; 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(){ init(); draw(); } //页面加载即运行 rerun();
这里主要定义初始化方法和动画绘制的方法,window.requestAnimationFrame(draw);
来生成动画。
相关课程 使用Javascript来实现素描动画效果
5)我们选用极客标签的logo,作为原始图片,坐标参数用 Inkscape 工具生成。
当运行动画绘制程序的时候,各条线安装设定的方式进行绘制,我们就看到非常酷的预加载动画了。
观看完整效果,请访问轻视频课程: 使用javascript生成极客标签Logo的素描动画效果

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

HTML适合初学者学习,因为它简单易学且能快速看到成果。1)HTML的学习曲线平缓,易于上手。2)只需掌握基本标签即可开始创建网页。3)灵活性高,可与CSS和JavaScript结合使用。4)丰富的学习资源和现代工具支持学习过程。

本文讨论了HTML&lt; Progress&gt;元素,其目的,样式和与&lt; meter&gt;元素。主要重点是使用&lt; progress&gt;为了完成任务和LT;仪表&gt;对于stati

HTML定义网页结构,CSS负责样式和布局,JavaScript赋予动态交互。三者在网页开发中各司其职,共同构建丰富多彩的网站。

本文讨论了html&lt; datalist&gt;元素,通过提供自动完整建议,改善用户体验并减少错误来增强表格。Character计数:159

本文讨论了HTML&lt; meter&gt;元素,用于在一个范围内显示标量或分数值及其在Web开发中的常见应用。它区分了&lt; meter&gt;从&lt; progress&gt;和前

AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

GiteePages静态网站部署失败:404错误排查与解决在使用Gitee...
