使用CSS的@keyframes和animation属性可实现元素缩放动画,核心是transform: scale()。1. 定义关键帧动画如scaleAnimation,设置from/to或百分比控制缩放过程;2. 将动画绑定到元素,设置时长、速度曲线和重复次数,如animation: scaleAnimation 2s ease-in-out infinite;3. 常见效果包括轻微呼吸(pulse)、点击弹出(popIn)等,可通过:hover或类名触发;4. 注意缩放基于中心点、不影响布局、配合opacity增强视觉效果,移动端需关注性能。
要实现元素的缩放动画效果,可以通过 CSS 的 @keyframes 和 animation 属性来完成。核心是使用 transform: scale() 来控制元素的放大或缩小。
先创建一个动画名称,比如 scaleAnimation,然后在关键帧中设置元素从多少倍缩放到多少倍。
@keyframes scaleAnimation { from { transform: scale(1); /* 初始大小 */ } to { transform: scale(1.5); /* 放大到1.5倍 */ } }也可以用百分比方式写:
@keyframes scaleAnimation { 0% { transform: scale(1); } 50% {
transform: scale(1.2);
}
100% {
transform: scale(1.5);
}
}
将定义好的动画绑定到目标元素上,设置动画时长、重复次数等参数。
.animated-element { width: 100px; height: 100px; background-color: blue; animation: scaleAnimation 2s ease-in-out infinite; }说明:
以下是一些实用场景:
轻微呼吸效果(常用于按钮悬停):
@keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }.button:hover { animation: pulse 0.6s ease-out infinite; }
点击后弹出放大:
@keyframes popIn { 0% { transform: scale(0); opacity: 0; } 100% { transform: scale(1); opacity: 1; } }.popup { animation: popIn 0.3s ease-out forwards; }
forwards 表示动画结束后保持最后一帧状态。
使用缩放动画时注意以下几点:
基本上就这些,不复杂但容易忽略细节。