web端动效 PAG

之前写过一篇lottie动效的文章:web端动效 lottie-web 使用,本篇写一下PAG-web的基础使用。

PAG是腾讯开发,支持移动端、桌面端以及Web端的动效工作流解决方案。目标是降低或消除动效相关的研发成本,能够一键将设计师在 AE(Adobe After Effects)中制作的动效内容导出成素材文件,并快速上线应用于几乎所有的主流平台。

  1. 安装 官方文档
yarn add libpag
  1. vue.config.js 加入以下代码
// ...
const path = require('path')
const CopyWebpackPlugin = require('copy-webpack-plugin')module.exports = defineConfig({// ...configureWebpack: {plugins: [// ...new CopyWebpackPlugin({patterns: [{from: path.resolve(__dirname, './node_modules/libpag/lib/libpag.wasm'),to: './js/'}]})]}
})

简单的接入示例和 Vue / React / PixiJS 等配置示例, 可以点击 这里 查看。

  1. 使用
    创建一个组件MyPag/index.vue
<template><canvas class="pag" id="pag"></canvas>
</template><script>
import { PAGInit } from 'libpag'export default {data () {return {pagView: null}},created () {this.initPag()},methods: {async initPag () {const url = '/static/like.pag' // pag文件放在了静态文件夹下 /public/staticconst PAG = await PAGInit()const { PAGFile, PAGView } = PAG// 示例 fetch 请求const buffer = await fetch(url).then(res => res.arrayBuffer())const pagFile = await PAGFile.load(buffer)document.getElementById('pag').width = pagFile.width()document.getElementById('pag').height = pagFile.height()this.pagView = await PAGView.init(pagFile, '#pag')this.pagView.setRepeatCount(0)this.pagView.play()}}
}
</script><style lang="scss" scoped>
.pag {width: 200px;height: 200px;
}
</style>

示例中pag文件路径,测试素材下载
在这里插入图片描述
一个基本的pag动效就出来了
在这里插入图片描述
结合实例方法,加入简单的鼠标事件:移入播放,移出暂停。查看API文档

<template><div class="lottie" @mouseenter="onMouseenter" @mouseleave="onMouseleave"></div>
</template><script>
import lottie from 'lottie-web'export default {props: {animationData: {type: Object,required: true},autoplay: {type: Boolean,default: true},loop: {type: Boolean,default: true}},data () {return {lottie: null}},mounted () {this.intLottie()},methods: {intLottie () {let { animationData, autoplay, loop } = thisif (!autoplay) {loop = false}this.lottie = lottie.loadAnimation({container: this.$el, // 渲染容器renderer: 'svg', // 渲染方式loop, // 是否循环autoplay, // 自动播放animationData // lottie json文件})},onMouseenter () {if (!this.autoplay) {this.lottie.setDirection(1)this.lottie.play()this.lottie.addEventListener('complete', e => {this.lottie.stop()})}},onMouseleave () {this.lottie.removeEventListener('complete')if (!this.autoplay) {this.lottie.setDirection(-1)}}}
}
</script><style lang="scss" scoped>
.lottie {width: 200px;height: 200px;
}
</style>

在这里插入图片描述

PAGViewer

目前 PAG 预览支持 Web、macOS 和 Windows 平台,其中 Web 平台为一个页面,macOS 和 Windows 平台为桌面端应用。进入下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/131445.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TensorFlow 03(Keras)

一、tf.keras tf.keras是TensorFlow 2.0的高阶API接口&#xff0c;为TensorFlow的代码提供了新的风格和设计模式&#xff0c;大大提升了TF代码的简洁性和复用性&#xff0c;官方也推荐使用tf.keras来进行模型设计和开发。 1.1 tf.keras中常用模块 如下表所示: 1.2 常用方法 …

Ei Scopus检索 | 2024年第四届能源与环境工程国际会议(CoEEE 2024)

会议简介 Brief Introduction 2024年第四届能源与环境工程国际会议(CoEEE 2024) 会议时间&#xff1a;2023年5月22日-24日 召开地点&#xff1a;意大利米兰 大会官网&#xff1a;www.coeee.org CoEEE 2024将围绕“能源与环境工程”的最新研究领域而展开&#xff0c;为研究人员、…

VSCODE 使用技巧

vscode批量去掉代码中空行的方法 1、在vscode中使用ctrl f组合快捷键打开替换窗口. 2、输入下面的正则表达式 ^\s*(?\r?$)\n https://mp.weixin.qq.com/s/ZKV2sZWszxBLNTNLEWhsng

springboot redisTemplate.opsForValue().setIfAbsent返回null原理

一、版本 springboot版本&#xff1a;spring-boot-starter-data-redis 2.1.6 redisson版本&#xff1a;redisson-spring-boot-starter 3.11.5 二、场景 Boolean res redisTemplate.opsForValue().setIfAbsent("key","value");以上代码同一时间多次执行…

Sentinel控制台配置 持久化到nacos

sentinel控制台&#xff0c;使用方便&#xff0c;功能强大。使用官方的jar包&#xff0c;配置不会持久化&#xff0c;sentinel重启后会导致&#xff0c;之前的规则全部丢失&#xff0c;下面一起改造源码实现规则数据的持久化 sentinel源码地址 &#xff08;github访问太慢&am…

嵌入式学习笔记(25)串口通信的基本原理

三根通信线&#xff1a;Tx Rx GND &#xff08;1&#xff09;任何通信都要有信息作为传输载体&#xff0c;或者有线的或则无线的。 &#xff08;2&#xff09;串口通信时有线通信&#xff0c;是通过串口线来通信的。 &#xff08;3&#xff09;串口通信最少需要2根&#xff…

MCU芯片测试:性能指标测试痛点是什么?ATECLOUD能否解决?

MCU芯片测试指标的核心是性能指标&#xff0c;包括处理器性能、存储器容量和读写速度&#xff0c;外设性能等。芯片测试对自动化测试的要求很高&#xff0c;ATECLOUD-IC不仅解决了传统测试方法的问题&#xff0c;而且也可以满足芯片测试的高要求&#xff0c;高效地完成MCU芯片性…

ChartJS使用-环境搭建(vue)

1、介绍 Chartjs简约不简单的JavaScript的图表库。官网https://chart.nodejs.cn/ Chart.js 带有内置的 TypeScript 类型&#xff0c;并与所有流行的 JavaScript 框架 兼容&#xff0c;包括 React 、Vue 、Svelte 和 Angular 。 你可以直接使用 Chart.js 或利用维护良好的封装程…

SpringBoot课堂笔记20230913

本篇文章为SpringBoot学习笔记&#xff0c;方便自己再复习。 Maven&#xff1a;jar包管理工具 注解&#xff1a; Controller:处理http请求&#xff0c;返回的视图 RestController: 相当于ResponseBody和Controller一起用&#xff0c;返回的是json ResponseBody:返回响应内容 …

自动化监控系统PrometheusGrafana

Prometheus 算是一个全能型选手&#xff0c;原生支持容器监控&#xff0c;当然监控传统应用也不是吃干饭的&#xff0c;所以就是容器和非容器他都支持&#xff0c;所有的监控系统都具备这个流程&#xff0c;数据采集→数据处理→数据存储→数据展示→告警 Prometheus 特点展开…

摩洛哥6.9级地震 网络出现轻度中断

北京时间2023年9月9日6时11分(当地时间8日23时11分)&#xff0c;摩洛哥发生6.9级强震。埃文科技的监测数据显示&#xff0c;受地震影响&#xff0c;摩洛哥地区的网络也出现了轻度中断。 9月9日6时10分后&#xff0c;摩洛哥地区活跃前缀数量开始减少&#xff0c;在6时50分左右达…

利用 Python 中的地理空间数据与 GeoPandas

推荐&#xff1a;使用 NSDT编辑器快速搭建3D应用场景 空间数据的真正潜力在于它能够连接数据点及其各自的位置&#xff0c;为高级分析创造无限的可能性。地理空间数据科学是数据科学中的一个新兴领域&#xff0c;旨在利用地理空间信息并通过空间算法和机器学习或深度学习等先进…

算法通关村第十九关:白银挑战-动态规划高频问题

白银挑战-动态规划高频问题 1. 最少硬币数 LeetCode 322 https://leetcode.cn/problems/coin-change/description/ 思路分析 尝试用回溯来实现 假如coins[2,5,7]&#xff0c;amount27&#xff0c;求解过程中&#xff0c;每个位置都可以从[2,5,7]中选择&#xff0c;因此可以…

error:Failed building wheel for XXX

解决方案适用于大多数的pip 安装时出现的Failed building wheel for XXX 出现问题 按以往快速安装包的经验&#xff0c;第一反应当然是使用简单又快捷的terminal命令加上镜像&#xff0c;如下&#xff1a; pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple结…

关闭训练过程中的wandb

训练的过程中反复提醒wandb的账户&#xff0c;自动化执行的话&#xff0c;不是很方便&#xff0c;因此需要关闭这个wandb的功能 提醒的方式是这样的&#xff1a; 解决办法1、注释掉wandb相关的代码&#xff0c;并且添加关闭命令&#xff1a;wandb None 参考&#xff1a; 训…

儿童折叠式和非折叠式椅子和凳子加拿大认证标准要求介绍 ASTM F2613-21

儿童折叠式和非折叠式椅子和凳子是带有刚性框架的座椅家具&#xff0c;用于支撑儿童的身体&#xff0c;使其可以直立或倾斜的姿势坐立或休息。 此次合规要求更新适用于儿童折叠式和非折叠式椅子和凳子。这类产品可以折叠起来&#xff0c;以便运输或储存。儿童椅是带有刚性框架的…

05JVM_类加载阶段

一、类加载阶段 1.加载 1.1介绍 ①Java源代码经编译生成字节码文件&#xff0c;通过类加载阶段将字节码载入方法区。 ②类加载阶段内部是C的instanceKlass描述java类&#xff0c;重要的域field有: _java_mirror&#xff0c;java类镜像。例如对String来说&#xff0c;就是St…

OpenCV(四十):图像分割—漫水填充

1.漫水填充原理 图像分割中的漫水填充&#xff08;Flood Fill&#xff09;算法是一种基于区域增长的像素分类方法。其原理是在图像中从种子点开始&#xff0c;逐渐向周围扩展&#xff0c;并根据一定的条件决定是否将相邻的像素归属于同一区域。 漫水填充的基本原理如下&#x…

通过数据模板自动生成表格table

1.数据模板中的主要几个参数需要注意下(需要加样式可自由设置参数)&#xff1a; title:填入表格的内容 col:1,占一列&#xff0c;row: 3&#xff0c;占3行 align:center居中对齐, pdL&#xff1a;14&#xff0c;padding-left:14, bold:true,加粗 width&#xff1a;100&#xff…

第十五届全国大学生数学竞赛报名快要截止了,你报上名了吗?

关于组织参加 第十五届全国大学生数学竞赛的通知 01 为了培养人才、服务教学、提高大学生学习数学的兴趣&#xff0c;培养学生分析问题、解决问题的能力&#xff0c;发现和选拔数学创新人才&#xff0c;为学生提供一个展示基础知识和思维能力的舞台&#xff0c;我校决定组织参…