css3双击点赞动画,Twitter上的点赞动画

本文介绍如何使用 CSS 的 steps 方法来重现推特点赞按钮的动画效果。通过将过渡效果分成多个步骤,可以创建一种类似西洋镜的动画体验。文章详细解释了如何设置背景图片、使用步骤方法进行动画过渡,并探讨了这种方法相较于 GIF 的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

推特最近更新了他们的点赞按钮,使用了全新的动画,而这个动画使用一组动画来实现的而不是依赖于CSS 的transitions。今天使用CSS动画的steps方法来重建这个动画。

错觉

这种效果跟西洋镜的原理差不多,都是呈现一系列的帧,形成动画的效果

Demo

鼠标移到星星上面触发动画:

在这个例子中,我们开始创建一些列动画中会用到的图片,我们就直接使用Twitter的图标了。

f34d9d93754c05908b35cdb504b30db2.png

为了驱动这些图片帧,我们需要把他们放在同一水平线,这样我们只需要移动背景图的位置就行了。

99d7d24b2b8ede119b18b3d43d2e95d3.png

Step() 方法

对于大多数timing function而言(比如cubic-bezier),过度的开始和结束都会很平滑。但是steps方法不同,它把过度切分成很多步。每一步的区别很明显。

0b1a9733a01c9b7dcaeef854498e43a4.png

这个例子只需要一句HTML

背景图片

接下来添加一点样式和背景图片。

955b792082ea81880661e0153ed120f2.png

.fave {

width: 70px;

height: 50px;

background: url(images/twitter_fave.png) no-repeat;

background-position: 0 0;

}

当鼠标移上来的时候,我们使用steps方法逐步移动背景图。

.fave:hover {

background-position: -3519px 0;

transition: background 1s steps(55);

}

这里需要注意第二个属性,代码的意思是当我们改变background的时候,执行过度效果,时间为1s。steps(55)的意思是,把这过度效果平均分成55步走,因为我们总共有55帧。

效果就是,当我们把鼠标移上去的时候,就会执行这等间隔的55步过度。

为什么不使用gif?

这里不适用gif的原因是文件会很大,而且帧率不好控制。而使用上述的方法,我们可以暂定,倒带,或者跳到任意帧。

steps()方法的其他用处

驱动背景图片精灵生成动画只是steps的一种使用方法。任何使用一些列特定步骤的动画都可以用steps生成,比如做一个时钟。

559ccdae62acc29a9cb0b9076bce4a05.png

我是周晓楷,华南师范大学在校本科生,有轻微强迫症,拖延症,正在努力学习前端知识!微博@Helkyle。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值