账户中心 退出系统
5.0 版本 3.0 版本
使用手册 模板中心 账户中心 合作 · 服务
快速开始
动画库介绍
下载及部署
基础组件
animate.css 动画组件
animate.css 连贯动画
gal-api-animate 组件
文本动画
文本淡入淡出
文本背景动画
数值展示动画
按钮动画
提交按钮动画
边框动画按钮
点赞按钮动画
常用动画
全屏加载动画
渐变背景动画
时钟动画
红包雨动画
animate.css 连贯动画

演示说明

基于 gal-css-animate 组件实现的连贯动画效果,原理请参考演示代码;

兼容平台

H5APP小程序NVUE

演示代码

<template>
	<view>
		<gal-animate-bg>
			<view class="banner-title-main">
				<view style="padding:150rpx 0;">
					<gal-css-animate 
					:animateName="animateName" 
					:duration="animateDuration" 
					timingFunction="ease-in" 
					@onMounted="onMounted" 
					:autoPlay="false" 
					fillMode="forwards" 
					ref="galcssanimate">
						<text class="gal-h3 gal-block-text gal-text-center gal-color-white">{{animateContent}}</text>
					</gal-css-animate>
				</view>
			</view>
		</gal-animate-bg>
		
		<view class="gal-body gal-margin-top">
			<view style="height:50rpx;"></view>
			<view 
			class="gal-flex gal-rows gal-nowrap gal-justify-content-center gal-align-items-center" 
			hover-class="gal-tap">
				<text class="gal-color-gray gal-text gal-icons" 
				@tap="replay">&#xe635; 重新播放动画</text>
			</view>
		</view>
	</view>
</template>
<script>
export default {
	data() {
		return {
			animateName     : 'bounce',
			animateContent  : 'www.GraceUI.com',
			animateDuration : '1s',
			
			// 进行连贯播放的动画数组
			animations      : [
				{name:'bounceInRight', duration:'2s', timer:3000, content:'www.GraceUI.com'},
				{name:'fadeIn',  duration:'2s', timer:3000, content:'基于 uni-app 的优秀前端框架'},
				{name:'flipInY',  duration:'2s', timer:3000, content:'Grace Animation Library'},
				{name:'wobble',  duration:'2s', timer:3000, content:'基于 uni-app 的动画框架'}
			],
			
			// 动画是否正在播放
			playing : false
		}
	},
	methods: {
		onMounted : function () {
			console.log('动画组件已经准备好...');
			this.play(0);
		},
		play : function (index) {
			if(index >= this.animations.length){
				this.playing = false;
				return ;
			}
			this.playing         = true;
			this.animateContent  = '';
			this.animateName     = this.animations[index].name;
			this.animateContent  = this.animations[index].content;
			this.animateDuration = this.animations[index].duration;
			this.$refs.galcssanimate.play();
			setTimeout(()=>{
				this.play(index+1);
			}, this.animations[index].timer)
		},
		replay : function () {
			if(this.playing){
				uni.showToast({
					title:'动画正在播放',
					icon:"none"
				});
				return ;
			}
			this.play(0);
		}
	}
}
</script>
<style>
</style>

gitee 仓库地址 :
https://gitee.com/hcoder2016/grace-animation-library/blob/master/pages/demo/css-animate2.vue