uniapp 用css animation做的鲤鱼跃龙门小游戏



第一次做这种小游戏,刚开始任务下来我心里是没底的,因为我就一个'拍黄片'的,我那会玩前端的动画啊,后面尝试写了半天,当即我就给我领导说,你把我工资加上去,我一个星期给你做出来,算了不开玩笑了,'拍黄片'工资低,还要被java和前端歧视,日子不好过啊,做别人不愿意接的活,还没话语权,没人权。。

下面是主要代码

背景移动

html 复制代码
		<view class="bgBox">
			<view class="bgimg" class="bg"
				:style="'animation-play-state:'+actived+';animation-timing-function:steps('+bgTiming+');'"></view>
		</view>
javascript 复制代码
    
 .bgBox {
		width: 100%;
		height: 100vh;
		animation-direction: normal;
		animation-iteration-count: 1;
	}

	.bgimg {
		width: 100%;
		height: 100%;
		background: url('你的背景长图') no-repeat;
		background-size: 100% auto;
		display: block;
		animation-duration: 13s;
	}



	.bg {
		background-position: right top;
		animation-name: bg-action;
		animation-iteration-count: 1;
		animation-duration: 13s;
	}
	@keyframes bg-action {
		from {
			background-position: right 100%;
		}

		to {
			background-position: right 0;
		}
	}
javascript 复制代码
     //动画开始
     this.actived='running';
     //动画暂停
     this.actived = 'paused';

html 复制代码
		<view class="fishbox" :style="'animation-duration:'+goupData+'s;animation-play-state:'+actived"
			:class="yuType?'myElement':''">
			<view class="fish" :style="'animation-duration:'+sudata+'s;animation-play-state:'+actived"></view>
		</view>
css 复制代码
	.fishbox {
		width: 300rpx;
		height: 350rpx;
		position: absolute;
		bottom: 600rpx;
		animation-name: run;
		animation-direction: normal;
		animation-iteration-count: 1;
	}

	.fish {
		width: 100%;
		height: 96%;
		margin-left: 75%;
		background: url('../../static/jhy/lyylm/yu7.png') no-repeat left top;
		background-size: 100% auto;
		animation-name: play-action;
		animation-iteration-count: infinite;
		animation-timing-function: steps(5);
	}
	@keyframes run {
		0% {
			transform: translateY(180px);
		}

		90% {
			transform: translateY(-230px);
		}

		100% {
			transform: translateY(-350px);
		}
	}
	@keyframes play-action {
		from {
			background-position: left 0;
		}

		to {
			background-position: left 111.3%;
		}
	}
javascript 复制代码
     //动画开始
     this.actived='running';
     //动画暂停
     this.actived = 'paused';

总结:

关于动画结束,给一个默认结束时间,比如10S,在点击开始方法里面写一个定时器,每秒减1,当时间等于0时结束动画,消除定时器。背景和鱼的位置,就需要你自己慢慢调到合适的位置,祝愿你能成功。

相关推荐
2601_962885721 分钟前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
西瓜太郎123430 分钟前
Claude Code、Codex CLI、Gemini CLI 能否共用一枚 Key?先看协议选择矩阵
前端·api 网关·claude code·gemini cli·codex cli
陈随易2 小时前
在Finch用了62亿词元,我认为这是新一代Agent工具之神
前端·人工智能·后端
水域安全老周3 小时前
水趣钓鱼救生衣专利拆解:两级锁紧如何解决落水人衣分离
java·前端·网络
计算机魔术师3 小时前
Anthropic CEO突然喊踩刹车,OpenAI罕见力挺:AI这辆车不能只踩油门了
前端
wing984 小时前
从codex转战workbuddy使用一周的感受
前端·人工智能·后端
EatFan4 小时前
Java接入支付宝 JSAPI 支付保姆教程(二):流程讲解与前后端代码讲解
前端·spring boot·后端·微信小程序·小程序·uni-app
梦想平凡4 小时前
百游棋牌源代码开发搭建教程(五):房间创建、座位分配与请求幂等实现
前端·javascript·数据库·源代码管理
IT_陈寒5 小时前
Redis的Set操作居然能把我的服务整挂了?
前端·人工智能·后端
计算机魔术师5 小时前
Suno 发布 v6 音乐模型,推出 v6、v6-wild、v6-mini 三个版本
前端