1. 简介
随着移动互联网的发展,短视频 APP 已经成为了人们生活中不可或缺的一部分。在短视频 APP 中,点赞是用户交互中非常重要的一部分,如何让用户更直观感受到点赞所带来的喜悦和乐趣,就成了开发者们需要解决的问题。本文将手把手教你使用 CSS 的 transition 属性,实现短视频 APP 中点赞动画的效果。
2. 实现效果分析
在短视频 APP 中,用户为视频点赞时,通常会出现一个点赞动画效果,以提示用户点赞成功。这个点赞动画效果通常具有以下特点:
2.1 图标变化
点赞操作后,图标通常会先做一个缩小的动画,然后立即变成点赞后的图标,如图所示:
为此,我们需要通过 CSS 给点赞后的图标设置一些属性,例如旋转、放大、颜色变化等。同时,我们可以使用 transform 属性,实现图标的缩小和恢复放大效果。
2.2 数字变化
点赞操作后,视频下方的点赞数量通常也会相应地增加一个,如图所示:
为此,我们需要使用 JavaScript 或其他框架捕捉用户的点赞操作,通过 AJAX 获得服务器返回的点赞数量,再使用 JavaScript 将当前展示的点赞数量增加一。同时,我们还需要使用 CSS 的 transition 属性,让数字的变化更加自然流畅。
3. 代码实现
我们先来看一下 HTML 的代码结构:
<div class="like-btn">
<i class="icon-like"></i>
<span class="like-num">100</span>
</div>
其中,<i>
标签用来展示点赞图标,<span>
标签用来展示点赞数量。
接着,我们来添加 CSS 样式:
.like-btn {
display: inline-block;
position: relative;
cursor: pointer;
}
.icon-like {
display: inline-block;
width: 24px;
height: 24px;
background: url(like.png) no-repeat;
background-size: cover;
transition: transform 0.2s ease-in-out;
}
.like-num {
display: inline-block;
margin-left: 10px;
font-size: 14px;
font-weight: bold;
color: #666;
transition: color 0.2s ease-in-out;
}
我们给点赞图标的 <i>
标签设置了一些属性,包括宽度、高度、背景、transform 过渡效果等,以展示缩小和变化的效果。同时,我们定义了数字样式的转场效果,当数字变化时,颜色也会随之变化。
最后,我们使用 JavaScript 实现点赞事件,并通过 AJAX 获得返回的点赞数量:
// 获取 DOM 节点
var likeBtn = document.querySelector('.like-btn');
var likeIcon = document.querySelector('.icon-like');
var likeNum = document.querySelector('.like-num');
// 点赞事件
likeBtn.addEventListener('click', function() {
// 通过 AJAX 获得返回的点赞数量,此处省略
var newNum = likeNum.innerText + Number(1);
// 设置点赞图标缩小效果
likeIcon.style.transform = 'scale(0.8)';
likeIcon.style.webkitTransform = 'scale(0.8)';
// 数字变化效果
likeNum.style.color = '#ff6a6a';
// 500ms 后恢复点赞图标的放大效果
setTimeout(function() {
likeIcon.style.transform = 'scale(1)';
likeIcon.style.webkitTransform = 'scale(1)';
}, 500);
// 300ms 后恢复数字颜色
setTimeout(function() {
likeNum.innerText = newNum;
likeNum.style.color = '#666';
}, 300);
});
当用户点击点赞按钮后,我们通过 AJAX 获得返回的点赞数量 newNum,同时设置了图标缩小效果和数字变化效果。通过 setTimeout() 方法,我们分别控制了点赞图标和数字样式恢复的时间,以实现更加自然流畅的动画效果。
4. 总结
本文通过对短视频 APP 点赞动画的分析,以及 CSS 和 JavaScript 的运用,实现了点赞效果。事实上,我们可以通过更多复杂的动画效果,让用户感受到更加丰富的交互体验。希望本文对初学者有所帮助,同时也能够鼓励大家去探索更多创意和想象力,打造出更好的用户体验。