关于用雪碧图做动画并且自适应的问题

最近做了一个h5的小项目,里面涉及到的动画效果比较多,其中有一个就是用雪碧图加css3做动画。
一开始遇到的问题就是雪碧图必须得用绝对坐标去获取图片的位置,但是我们需要做到的是自适应不同的屏幕
针对这种情况,作出了以下的解决方案:在这里插入图片描述
上面的图片是我需要实现效果的雪碧图,规格是1*5,一般我们需求填充到整个背景的时候是使用background-size:100% 100%;不过这也不是我们想要的。
那如果我们想要填充单个元素,我们可以按数量进行缩放:background-size:100% 500%,然后通过百分比去获取位置。
html:

<div class="circle">
  <div class="animation_wrap"></div>
</div>

css:

.circle{
  width: auto;
  height:auto;
  position: absolute;
  z-index:100;
  .animation_wrap{
    height:.4rem;
    width:.4rem;
    position:relative;
    z-index:99;
    overflow:hidden;
    transform:translate3d(-5px,-5px,0);
    animation-name:frames;
    animation-duration:1.5s;
    animation-timing-function:step-start;
    animation-delay:0s;
    animation-iteration-count:infinite;
    animation-direction:normal;
    animation-fill-mode:none;
    background-image:url(../images/spritesheet.png);
    background-size:100% 500%;
  }
}

@keyframes frames{
  0%{
    background-position:0% 0%;
  }
  20%{
    background-position:0% -100%;
  }
  40%{
    background-position:0% -200%;
  }
  60%{
    background-position:0% -300%;
  }
  80%{
    background-position:0% -400%;
  }
  100%{
    background-position:0% -500%;
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值