【UniApp】uniapp及vue中动画功能实现方案
CrazyPanda发表于:2023-12-12 17:56:54浏览:366次
需求场景:实际开发过程中,我们经常遇到各类比较炫酷的动画开发,比如简单的echarts插件使用,animation动画等...
动画实现方案:
1.css动画,如gif,a-png,animation,transform等
animation: handleAni 1s linear infinite; @keyframes handleAni { 0% { //css样式 } 50%{ //css样式 } 100% { // css样式 } 或者 from {} to {} }
理解CSS3 transform中的Matrix(矩阵) « 张鑫旭-鑫空间-鑫生活
2.vue内置组件transition
<!-- 将要使用动画的内容放在transition里即可 --> <transition name="fade"> <div v-show="show"></div> </transition> .fade-enter-active, .fade-leave-active { transition: opacity .5s } .fade-enter, .fade-leave-active { opacity: 0 }
3.切视频
前端两种播放视频的方式_木易66丶的博客-CSDN博客_前端视频播放
4.循环序列帧
简单思路是设计师给出N个几十kb的小图片,利用setInterval定时器循环图片,需要注意的是:setInterval会越循环越快,需要定义变量intervalFlag防止加速,缺点:这种方式属于很多图片无限循环,后边的图片不断覆盖前边的图片,如果图片加载缓慢会导致卡白,而且比较耗费性能
<img :src="showImageUrl" class="" mode="aspectFit" /> data() { return { intervalFlag: false, setIntervalNumber: 0, showImageUrl: '', interval: null, } } handleAni() { if(this.intervalFlag) return //防止加速 this.intervalFlag = true let _this = this this.interval = setInterval(function() { _this.setIntervalFunc() }, 60) //每60毫秒执行一次 } setIntervalFunc() { if(this.setIntervalNumber>=40) { this.setIntervalNumber = 0 } this.showImageUrl = this.setIntervalNumber + '.png' } // 清除定时器 clearIntervalFunc() { clearInterval(this.interval) }
5.lottie
AE导出json文件,项目中引入json实现动画
6.svga
6.1.简单实现:vue项目中使用svga格式文件_钱大碗爱吃辣的博客-CSDN博客_vue使用svga
6.2.理解文章:
SVGA使用手册_星星点点微光的博客-CSDN博客_svga使用
6.3.工具:SVGA
svga引入:
// 安装 npm install svgaplayerweb --save // 引入svgaplayerweb插件 import SVGA from 'svgaplayerweb'; // 引入svga
组件封装:
<template> <view class="svgaBox"> <view id="demo" :style="{ 'position':'absolute', 'left': 0, 'top': 0, 'width': canvasWidth+'px', 'height': canvasHeight+'px' }"></view> </view> </template> <script> import SVGA from 'svgaplayerweb'; export default { props: { canvasWidth: { type: Number, default: 0 }, canvasHeight: { type: Number, default: 0 }, imageAniUrl: { type: String, default: 'default.svga' }, canvasLeft: { type: Number, default: 0 }, canvasTop: { type: Number, default: 0 }, isLoop: { type: Boolean, default: false }, }, data() { return {} }, mounted() { this.initSvag() }, methods: { initSvag() { let _this = this var canvasList = document.getElementById('demo') var canvas = document.createElement('canvas') canvas.width = this.canvasWidth // Number类型! canvas.height= this.canvasHeight // Number类型! canvas.style.position = 'absolute' canvas.style.top = this.canvasTop canvas.style.left = this.canvasLeft canvas.style.zIndex = 4 canvas.id = 'myCanvas' canvasList.appendChild(canvas) let player = new SVGA.Player('#myCanvas') let parser = new SVGA.Player('#myCanvas') parser.load(this.imageAniUrl, function(value){ player.loops = _this.isLoops?0:1 player.setVideoItem(value) player.startAnimation() }) } } } </script>
实现效果(转骰子效果)
7.vue-lottie动画
8.js判断当前页面用什么浏览器打开的方法
猜你喜欢
- 【UniApp】使用uniapp实现日历功能
- 使用uniapp实现日历功能随着移动互联网的发展,日历功能成为了许多APP和网站的必备组件之一。在uniapp这个跨平台开发框架中,我们可以很方便地实现日历功能,并且兼容多个平台,包括iOS、Android等。首先,我们需要用到uniapp的组件库中的日期选择器。uniapp提供了picker组件,其中mode属性可以设置为"date"来实现日期选择。具体代码如下:<template> <view> &nb
- 【UniApp】利用uniapp实现拖拽排序功能
- 利用uniapp实现拖拽排序功能,需要具体代码示例随着移动端应用的普及和需求的增长,拖拽排序功能变得越来越重要。无论是在社交媒体应用中的朋友圈排序,还是在任务列表中的任务排序,都需要拖拽排序功能来提供用户更好的交互体验。利用uniapp框架,我们可以很方便地实现拖拽排序功能。首先,我们需要创建一个uniapp项目,并创建一个列表页面。在页面中,我们可以展示一个列表,每个列表项都可以通过拖拽来改变自己的顺序。下面是一个简单的代码示例:
- 【UniApp】uniapp应用如何实现绘画训练和动画制作
- uniapp应用如何实现绘画训练和动画制作引言:随着移动互联网技术的不断发展,移动应用程序的开发变得越来越普遍。uniapp作为一款基于Vue.js框架的跨平台开发工具,为开发人员提供了一种简单高效的方式来构建跨平台的应用程序。本文将介绍如何使用uniapp实现绘画训练和动画制作,并附上具体的代码示例。一、绘画训练实现绘画训练可以让用户提升艺术技巧和创造力,uniapp提供了Canvas组件来实现绘画功能。下面是一个简单的绘画训练应用的示例代码:在uniapp的pages目录下创建一个
- 【UniApp】uniapp路由怎么配置
- 随着移动应用的普及和需求的增加,越来越多的开发者开始使用跨平台开发技术来构建应用程序。UniApp作为一个跨平台的开发框架在这个趋势下逐渐崭露头角,并且受到越来越多开发者的欢迎。在使用UniApp开发应用程序的过程中,路由是一个非常重要的组成部分,它允许你在不同页面之间进行导航。在UniApp中,路由用于控制应用程序的页面跳转和导航。如果你已经熟悉了Vue.js的路由机制,那么在使用UniApp的路由时,你将会感到非常熟悉。UniApp的路由机制可以很好地兼容Vue.js的路由,并且提
- 【UniApp】最新使用uniapp本地打包APP安卓,已排坑
- uniapp打包IOS!!!1. 生成本地打包资源 2. 下载Android Studio和App离线SDK导航路径:https://nativesupport.dcloud.net.cn/AppDocs/usesdk/android下载的Android 离线SDK与本地开发工具版本对应 3. 解压得到的目录如下4. 使用Android Studio打开Android 离线SDK解压目录里面这个文件夹,这个是示例项目,我们只需要更改这个项目的一些配置,其他配置HBuilderX已经配置好了5.
- 【UniApp】如何在uniapp中关闭webview
- 在使用uniapp开发时,经常会需要在应用中使用webview来加载外部网页或是展示其他内容。但是,有时候我们并不需要一直保持webview的打开状态,而是需要手动关闭。那么,本文将会介绍如何在uniapp中关闭webview。一、关闭当前页面在uniapp中,我们可以使用以下方法来关闭当前webview所在的页面:uni.navigateBack({ delta: 1 });这个方法会返回到上一个页面,即关闭当前页面。二、关闭
- 【UniApp】uniapp 软键盘不自动关闭怎么解决
- 随着移动互联网的发展,使用框架、工具来快速开发APP的方式成为主流,uniapp作为跨平台的开发框架在开发中有着不可替代的作用,它可以支持多种平台,同时拥有着方便快捷、代码复用率高等优点。在uniapp开发中,软键盘的使用是非常常见的,但是,有时候开发者会遇到软键盘不自动关闭的问题,这就会导致用户在使用APP时的体验差,本文将介绍如何解决uniapp软键盘不自动关闭的问题。一、问题概述在开发uniapp过程中经常会使用input元素进行输入数据,这时候键盘会自动弹出,并自动关闭,在某些
- 【UniApp】利用uniapp实现音频播放功能
- 利用uniapp实现音频播放功能随着移动互联网的发展,音频播放功能成为了许多应用必不可少的功能之一。而利用uniapp可以方便地实现音频播放功能,而且具有跨平台的特点,可以在不同的移动终端上运行。在进行uniapp开发之前,我们需要先准备好音频资源文件。在本文中,我们将使用一个名为"music.mp3"的音频文件作为示例。首先,我们需要在uniapp的项目中创建一个音频播放页面。在pages文件夹下,新建一个名为"audio"的文件夹,并在该文件
栏目分类全部>