通过CSS Animation结合@keyframes和:hover实现图标悬停时的放大与弹跳效果,提升交互视觉表现。
CSS Animation是实现图标悬停效果的强大工具,它能让简单的交互变得生动有趣,通过定义关键帧(keyframes)和应用动画属性,我们可以精确控制图标在鼠标悬停时如何变化,无论是尺寸、颜色、旋转,还是更复杂的序列动作,都能以流畅且富有表现力的方式呈现。
解决方案
要实现一个基本的图标悬停动画,我们通常会结合
@keyframes
规则和
:hover
伪类。下面是一个常见且实用的例子,让图标在悬停时略微放大并带有轻微的弹跳感:
HTML 结构: 假设我们有一个SVG图标或者一个使用图标字体的
<i>
标签。
<div class="icon-wrapper"> <svg class="animated-icon" viewBox="0 0 24 24" fill="currentColor"> <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v-3h2v7.93zm6.93-2.5l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.6c.6-.6.6-1.5 0-2.1-.6-.6-1.5-.6-2.1 0l-2.6-2.