css实现点赞动画

一.使用transition实现
会用到steps(count, position)方法,它是一个timing function,会把过渡分成countposition的默认值是end,还可以为start。假如现在有一个动画分成5段,end会在第一段的时间执行完后才到第一段的终点即第二段的起点,一次类推执行动画,当执行到最后一段时,到达不了最后一步的终点就会到回到起点重新开始执行动画;而start是先到第一段的终点,等第一段的时间执行完后,到达第二段的终点,以此类推,能到达最后一段的终点。

思路:将动画的每一帧放在一张雪碧图中,横着排列。将雪碧图当作背景图片,初始状态显示动画的第一帧即雪碧图的第一个,点击以后改变背景的位置,达到动画的效果。

具体实现如下:

// React
<div className="stage">
     <div className={cls("heart", {'is-active': this.state.color})} onClick={this.changeColor.bind(this)}></div>
</div>

// css
.heart {
    width: 100px;
    height: 100px;
    background: url("https://cssanimation.rocks/images/posts/steps/heart.png") no-repeat;
    background-position: 0 0;
    cursor: pointer;
  }
  
.is-active {
    background-position: -2800px 0;
    transition: background-position 1s steps(28);
}

.stage {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

效果图:


dianzan.gif

未完待续。。。

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

推荐阅读更多精彩内容

  • 在iOS实际开发中常用的动画无非是以下四种:UIView动画,核心动画,帧动画,自定义转场动画。 1.UIView...
    请叫我周小帅阅读 3,192评论 1 23
  • 在iOS实际开发中常用的动画无非是以下四种:UIView动画,核心动画,帧动画,自定义转场动画。下面我们逐个介绍。...
    4b5cb36a2ee2阅读 372评论 0 0
  • 书写的很好,翻译的也棒!感谢译者,感谢感谢! iOS-Core-Animation-Advanced-Techni...
    钱嘘嘘阅读 2,339评论 0 6
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,161评论 1 32
  • 前言:在APP程序开发中,优美的界面能够大大提高用户的体验,而优美的界面离不开好看的动画效果。下面废话少说,直接进...
    moxuyou阅读 41,031评论 32 344