`

如何使用SVG生成超酷的页面预加载素描动画效果

 
阅读更多

在线演示

本地下载

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 代 码以 <svg> 元素开始,包括开启标签 <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">
    <!--
    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"
    />
    </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的素描动画效果

分享到:
评论

相关推荐

    13款html5 svg页面loading加载动画效果

    总的来说,"13款html5 svg页面loading加载动画效果"是一个展示HTML5与SVG结合使用,以及CSS3动画技术在创建现代网页交互元素方面的强大能力的实例集。这些技术的应用不仅提升了用户体验,也反映了Web开发的最新趋势...

    10款华丽的SVG Loading加载动画效果

    "10款华丽的SVG Loading加载动画效果"就是这样一个资源集合,它展示了如何巧妙地利用SVG(Scalable Vector Graphics)技术来创建动态、美观的加载动画。 SVG是一种基于XML的矢量图形格式,它的优点在于可以无限缩放...

    手机页面预加载效果

    手机页面预加载效果是移动应用或网页在用户打开时,为了提供流畅的用户体验而采用的一种技术。当用户点击一个链接或者启动应用时,预加载效果会先展示出来,以掩盖内容加载过程中的空白期,同时给予用户视觉反馈,...

    13种svg html5 loading页面加载动画弹出层效果代码

    "13种SVG HTML5 Loading页面加载动画弹出层效果代码"集合提供了丰富多样的加载动画,旨在提升用户在等待页面完全加载时的视觉体验,增强网站的专业感与吸引力。下面将详细解析这些知识点。 1. SVG (Scalable Vector...

    html5 SVG绘图动画制作页面加载loading绘图动画效果

    HTML5和SVG(Scalable Vector Graphics)是现代网页开发中的重要技术,它们结合使用可以创建出富有表现力和交互性的页面加载动画。在本文中,我们将深入探讨如何利用HTML5和SVG来制作一个页面加载的绘图动画效果。 ...

    SVG 实现一个扁平化的页面预加载效果

    总的来说,通过 SVG 和 CSS 动画的结合,我们可以轻松地创建出扁平化且具有个性的页面预加载效果。这种技术不仅适用于静态网页,也广泛应用于响应式设计和单页应用(SPA)中。理解并掌握 SVG 和 CSS 动画的基本原理...

    Android中使用SVG实现炫酷动画效果

    本文将详细介绍如何在Android应用中使用SVG来实现炫酷的动画效果。 1. **SVG基础知识** SVG是一种基于XML的图形语言,它定义了形状、路径、文本、渐变、透明度等元素,可以创建复杂的图形。SVG文件由一系列指令...

    html5 svg炫酷页面loading加载切换页面效果

    SVG加载动画的核心是使用SVG的 `&lt;svg&gt;` 标签创建图形,然后通过CSS或JavaScript控制其变换。CSS3提供了许多强大的动画属性,如`transition`和`animation`,可以实现平滑的过渡效果。在这个案例中,加载进度条可能是...

    2款页面预加载动画效果,加载页面时出现圆形进度条,加载后LOGO缩小。兼容主流浏览器

    "2款页面预加载动画效果,加载页面时出现圆形进度条,加载后LOGO缩小。兼容主流浏览器"这个主题聚焦于提升用户在等待网页完全加载时的视觉体验。预加载动画是一种有效的策略,可以向用户显示网页正在努力加载,从而...

    html5 SVG螺旋式扩散网页加载等待动画特效

    通过监听页面加载事件,可以触发加载动画的开始。然后,通过定时器(如`setInterval`或`requestAnimationFrame`)来控制动画的帧率,逐步更新SVG元素的属性,如路径的`d`属性(定义路径数据),来实现螺旋线的旋转和...

    纯svg加载loading动画.zip

    在本压缩包“纯svg加载loading动画.zip”中,包含了11种不同的SVG加载动画效果。这些动画是通过编写SVG代码并结合CSS或JavaScript来实现动态效果的。每一种效果都通过`&lt;img&gt;`标签直接调用SVG文件,这种方式简洁高效...

    CSS3 SVG网页沙漏加载动画特效

    本文将深入探讨这个主题,介绍CSS3和SVG如何结合创建出这样的动画效果,并提供相关的编程技巧。 **CSS3概述** CSS3(Cascading Style Sheets Level 3)是CSS的最新版本,引入了许多新的特性和功能,如动画、过渡、...

    13种svg html5 loading页面加载动画弹出

    - 文件中的数字可能代表不同的动画样式,如`index7.html`可能展示了第七种加载动画效果。 5. 开发实践 在实际开发中,开发者可以参考这些示例,根据项目需求调整动画设计,如改变颜色、速度、形状等。同时,通过...

    2款页面预加载进度动画效果特效代码

    本资源提供了两款独特的页面预加载进度动画效果特效代码,旨在提升用户在等待页面完全加载过程中的体验感。 第一款动画效果可能是圆形进度条。这种效果通常由一个环形图案构成,其内部填充随着页面资源的加载逐渐...

    SVG实现Loading加载按钮动画图标特效.zip

    这个压缩包文件"SVG实现Loading加载按钮动画图标特效.zip"包含了实现SVG加载动画效果的相关资源,包括HTML、JavaScript(js)和CSS(样式表)文件。下面我们将详细探讨SVG、加载动画以及如何通过这些技术来创建按钮...

    svg 动画管道效果

    总结起来,这个项目展示了如何利用SVG、jQuery和自定义的JavaScript库来创建交互式的、数据驱动的动画效果,特别是对于显示温度计和管道这样的视觉元素。同时,这也提醒我们在开发过程中要考虑浏览器的兼容性问题,...

    30种CSS3炫酷页面预加载loading动画特效源码.zip

    本资源"30种CSS3炫酷页面预加载loading动画特效源码.zip"包含了30个不同的CSS3实现的加载动画效果,这些效果既美观又高效,能够为你的网站增添独特的魅力。 首先,CSS3是 Cascading Style Sheets 的第三版,它是...

    12种炫酷html5 svg加载loading动画特效

    本资源集包含12种炫酷的HTML5 SVG加载动画特效,这些特效能够为网页增加视觉吸引力,提升用户体验,特别是在页面内容加载时。 SVG的优势在于其矢量特性,这意味着无论放大多少倍,图像质量都不会降低。这对于网页...

    HTML5 SVG实现超酷的盆栽藤曼生长动画效果源码.zip

    这个“HTML5 SVG实现超酷的盆栽藤蔓生长动画效果源码”是一个实例,展示了SVG在网页动画制作中的强大功能。 SVG的优势在于其矢量特性,这意味着无论放大多少倍,图像质量都不会降低。同时,SVG代码是基于XML的,...

    H5多种加载效果loading,H5页面加载中动画

    H5加载效果,也称为“loading”或“预加载”,是指在页面内容完全加载之前显示的一种视觉反馈。它通常包含一个动效,让用户知道页面正在加载,从而减少用户因等待而产生的不耐烦感。这些动效可以是简单的百分比...

Global site tag (gtag.js) - Google Analytics