第一次做这种小游戏,刚开始任务下来我心里是没底的,因为我就一个‘拍黄片’的,我那会玩前端的动画啊,后面尝试写了半天,当即我就给我领导说,你把我工资加上去,我一个星期给你做出来,算了不开玩笑了,‘拍黄片’工资低,还要被java和前端歧视,日子不好过啊,做别人不愿意接的活,还没话语权,没人权。。
下面是主要代码
背景移动
<view class="bgBox">
<view class="bgimg" class="bg"
:style="'animation-play-state:'+actived+';animation-timing-function:steps('+bgTiming+');'"></view>
</view>
.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;
}
}
//动画开始
this.actived='running';
//动画暂停
this.actived = 'paused';
鱼
<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>
.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%;
}
}
//动画开始
this.actived='running';
//动画暂停
this.actived = 'paused';
总结:
关于动画结束,给一个默认结束时间,比如10S,在点击开始方法里面写一个定时器,每秒减1,当时间等于0时结束动画,消除定时器。背景和鱼的位置,就需要你自己慢慢调到合适的位置,祝愿你能成功。