用昨天课上的知识实现简单的骑马动画

最终效果Demo

开始的动画调来调去还是卡卡的,不是前面卡,就是后面卡,为了后面的连贯性,只能前面卡了。

布局与主要实现思路

<div class="box">
    <div class="w"></div>
    <input type="button" value="start" class="btn">
<div>
.box{
  width:469px;
  height: 162px;
  background: url(http://i12.tietuku.com/2fa0e7f78bb8b3cf.jpg);
  position: relative;
  margin: 0 auto;
}
.w{
  background: url(http://i12.tietuku.com/995f13586cedf770.png) transparent;
  height: 100%;
}
.btn{
  position: absolute;
  left: 50%;
  bottom: -25px;
  width: 100px;
  margin-left: -50px;
}

其实很简单,就是两个div设置两个不同的背景,默认第二个div的背景会掉覆盖第一个的,可以设置第二个div的背景颜色为透明,这样就能实现Demo中的效果

不说那个坑爹的过场动画,先看怎么样让马跑起来

setInterval(function(){
    var num=0;
    $('.box').css({
        'background-positionX': '+=67'
    });
    num++;
    if(num==7){
        num=0;
        $('.box').css({
            'background-positionX': 0
        });
    }
},60);

不停改变box的background-positionX,让它每次跳动67px,为什么是67px,因为格子图片的宽度是469px,每行7个格子,每个格子的宽度就是67px,正好每个格子对应一个骑马的动作,所以每两个骑马动作的间距就是67px。

用setInterval不停的调用这个css,让它从第一个动作跳到第二个动作,第二个跳到第三个,跳到第七个后又回到第一个,不停的循环。

setInterval执行的越快,马就跑的越快

再来说说过场动画的事,由于马不是一下子跑起来的,所以在最开始加个过场,让它由慢到快,也是改变background-positionX的值。

由于setInterval()是后执行函数,把动画放到它的后面,效果会连贯一些,不然中间会卡60ms

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 12,713评论 6 30
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,526评论 5 13
  • 隐藏元素的hide方法 让页面上的元素不可见,一般可以通过设置css的display为none属性。但是通过css...
    老夫撩发少年狂阅读 4,751评论 0 2
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,447评论 25 709
  • 河北交通法律网(陈少勇)因交通事故受损,造成的车辆停运损失是由肇事方赔偿还是由投保的保险公司赔偿。一直来,因各地的...
    cb63b2042cdb阅读 8,654评论 0 2