uniapp 背景动画 执行一次

落花浮王杯 提交于 2019-12-24 09:27:23

接着前两篇博客,做出来背景动画以后,客户要求进 app 时执

行一次动画,到退出app 之前,都不再执行动画。因为这个动画是在首页加的,所以就是刚进app 时在首页执行动画,跳转其他页面回来动画也不执行。

首页的     

template:

   在template 里  稍加改动     加了一个 v-if 用来控制动画图片的显示隐藏

<view v-if="haveimg">
<image :src="item.url" mode="" class="img" v-for="(item,i) in images" :key='i' :style="{left:item.left,width:item.width,height:item.height;
animationDuration:item.animationDuration,animationDelay:item.animationDelay}"></image>
</view>

js:

<script>
	export default {
		data() {
			return {
				haveimg: false,  //  让图片先隐藏
			}
		},
		onShow() {
                //  让图片的显示隐藏 与 缓存连在一起 
			this.haveimg = uni.getStorageSync('haveAninmation');
			this.numimg();
		},
		onHide() {
                // 随便设一个缓存  
			uni.setStorageSync('haveAninmation', false);
		},
		methods: {
			// 背景图片动画
			numimg() {
				var url = this.images[Math.floor(Math.random() * this.images.length)];
				console.log(url);
				for (var i = 0; i < this.images.length; i++) {
					this.images[i].left = randomNum(5, 90).toFixed(0) + '%';
					this.images[i].width = randomNum(56,75).toFixed(0)+'upx';
					this.images[i].height = this.images[i].width;
					this.images[i].animationDuration = randomNum(5,8).toFixed(1)+'s';
					this.images[i].animationDelay = randomNum(0,4).toFixed(1)+'s';
				}
			},
			
		}
	}
</script>

css:

//  客户要求说就掉1次   所以animation-iteration-count 次数 是 1  不是 infinite(无限次)

.img {
		position: absolute;
		top: -80upx;
		z-index: 99;
		animation: snow   1s  linear  1 ;
	}

要在 登录页 也要加关于缓存的东西

点击登录按钮的时候,在登录的方法里  要加上:

login() {
	uni.setStorageSync('haveAninmation', true);
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!