简单说说svga的应用,留个案例自己用

2024-04-28 04:08
文章标签 简单 应用 案例 svga 留个

本文主要是介绍简单说说svga的应用,留个案例自己用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

项目上临时要用到svga,所以就去官网看了看用法。 写了个demo,记录一下,以便不时之需。

svga的githubhttps://github.com/svga/SVGAPlayer-Web

  • 按照步骤操作即可
  • url一定是http这样的全链接形式。
  • 这个demo是在html里用的,直接引入的cdn链接。想用在其他地方的,可以去官网看看。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>svga demo</title><style>#svga1 {width: 218px;height: 173px;}</style>
</head>
<body><!-- 第一步:建一个div,带上id属性 --><div id="svga1"></div><!-- 第二步,引入svga的cdn链接 --><script src="https://cdn.jsdelivr.net/npm/svgaplayerweb@2.1.0/build/svga.min.js"></script><script>// 第三步,实例化players和parsersvar players = [];var parsers = [];players[0] = new SVGA.Player("#svga1");parsers[0] = new SVGA.Parser("#svga1");var URLS = ["https://xxx.com/xxx.svga",]// 第四步,准备动画和使用动画svgaAnimation(players[0], parsers[0], URLS[0]);// loops 0 为循环 1为1次function svgaAnimation(player, parser, url){parser.load(url,function(videoItem){player.loops = 0;player.setVideoItem(videoItem);player.clearsAfterStop = false;  //默认是清空画布 ,这边设置不清空画布player.startAnimation();},function(err){console.log("svga播放失败");})}</script>
</body>
</html>

还有个api,是控制帧数的。

// 第一种写法,是在parser.load函数里写。控制所有的动画帧数
player.onFrame(function(i) {  // i 表示帧数// do something...i === 10 && console.log(1) // 比如 当动画播放到第10帧时,输出1
})// 第二种写法,单独控制一个player的动画帧数
players[x].onFrame(function(i) {// do something...
})

同一个svga动画在6个不同位置都循环播放
  • 这时候的svga盒子,就不能用id来表示了,因为id是唯一值,要是有6个位置,就要写6个不同的id值,相当麻烦。这时候可以用类名来一次性完成。
  • 详细demo如下:
<!--demo.html-->
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>同一个svga动画在6个不同位置都循环播放</title><link rel="stylesheet" href="demo.css">
</head>
<body><div class="whitecaosvga"></div><div class="whitecaosvga"></div><div class="whitecaosvga"></div><div class="whitecaosvga"></div><div class="whitecaosvga"></div><div class="whitecaosvga"></div><!-- 一定不要忘了引入svga文件哟 --><script src="https://cdn.jsdelivr.net/npm/svgaplayerweb@2.1.0/build/svga.min.js"></script><script src="demo.js"></script>
</body>
</html>
/*demo.css*/
* {padding: 0;left: 0;
}
.whitecaosvga {width: 218px;height: 173px;
}
/*demo.js*/
window.addEventListener('load', function() {var log = console.log || window.console.log;var $ = document.querySelector.bind(document);var $$ = document.querySelectorAll.bind(document);var whitecaosvga = $$('.whitecaosvga');var playerswc = [];var parserswc = [];for(var i = 0; i < 6; i++) {playerswc[i] = new SVGA.Player(whitecaosvga[i]);parserswc[i] = new SVGA.Parser(whitecaosvga[i]);}var URLS = ['https://ares.kktv8.com/kktv/resource/2021-05-13/20210513101721_470.svga',]for(var i = 0; i < 6; i++) {svgaTimes(playerswc[i], parserswc[i], URLS[0], 0);}/**引入控制动画播放次数的函数 *//**svga播放1次还是循环播放, times为0 则表示无限循环播放, times为1 则表示只播放1次 */function svgaTimes(player, parser, url, times) {function svgaAnimation(player, parser, url, times){parser.load(url,function(videoItem){player.loops = times;player.setVideoItem(videoItem);player.clearsAfterStop = false;  //默认是清空画布 ,这边设置不清空画布player.startAnimation();},function(err){console.log("svga播放失败");})}svgaAnimation(player, parser, url, times);}
})

这篇关于简单说说svga的应用,留个案例自己用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/942298

相关文章

Python结合PyWebView库打造跨平台桌面应用

《Python结合PyWebView库打造跨平台桌面应用》随着Web技术的发展,将HTML/CSS/JavaScript与Python结合构建桌面应用成为可能,本文将系统讲解如何使用PyWebView... 目录一、技术原理与优势分析1.1 架构原理1.2 核心优势二、开发环境搭建2.1 安装依赖2.2 验

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

SpringShell命令行之交互式Shell应用开发方式

《SpringShell命令行之交互式Shell应用开发方式》本文将深入探讨SpringShell的核心特性、实现方式及应用场景,帮助开发者掌握这一强大工具,具有很好的参考价值,希望对大家有所帮助,如... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

MySQL 分区与分库分表策略应用小结

《MySQL分区与分库分表策略应用小结》在大数据量、复杂查询和高并发的应用场景下,单一数据库往往难以满足性能和扩展性的要求,本文将详细介绍这两种策略的基本概念、实现方法及优缺点,并通过实际案例展示如... 目录mysql 分区与分库分表策略1. 数据库水平拆分的背景2. MySQL 分区策略2.1 分区概念

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经