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时结束动画,消除定时器。背景和鱼的位置,就需要你自己慢慢调到合适的位置,祝愿你能成功。

相关推荐
ZC跨境爬虫9 分钟前
跟着 MDN 学 HTML day_32:(AbstractRange 抽象接口与 DOM 范围操作)
前端·javascript·ui·html·音视频
喜崽10 分钟前
uniapp消息会话界面【消息组件一左一右】-01
uni-app
十子木13 分钟前
设置把所有终端移动到最前端的快捷键
前端
陈老老老板15 分钟前
Bright Data Web Scraping 实战:用 MCP + Dify 构建 eBay 商品详情采集 AI 工作流(2026)
前端·人工智能
一渊之隔24 分钟前
uniapp蓝牙搜索连接展示蓝牙设备包含信号显示
前端·网络·uni-app·bluetooth
Cisyam^30 分钟前
Bright Data Web Scraper 实战:构建 TikTok 与 LinkedIn Web Scraping 自动化 Skill(2026)
运维·前端·自动化
李剑一42 分钟前
开箱即用!Vue3+TS 视频组件完整代码,自动提取视频第一帧做封面。妈妈再也不用担心我手动截封面了
前端
盐多碧咸。。1 小时前
echarts折线图矩形选择 框选图表
前端·javascript·echarts
羽沢311 小时前
Canvas学习一
前端·css·学习·canvas
喜崽1 小时前
uniapp消息会话界面【消息滚动到底部】-02
uni-app