玩转链接悬停效果

Avatar of Geoff Graham
Geoff Graham

DigitalOcean 提供适用于您旅程各个阶段的云产品。 立即开始使用 $200 免费信用额度!

我与一位设计师在最近的团队会议上展示了设计稿。 她出色地将设计系统概念拼凑在一起,从组件到模式以及介于两者之间的所有内容,足以让任何前端开发人员感到高兴。

但是,她作品中一个微不足道的细节吸引了我的眼球:链接的悬停状态是一个波浪。

默认链接(顶部)和悬停效果(底部)

嗯! 不仅我以前没见过这个,而且这个想法从未在我的脑海中出现过。 事实证明,在实际网站上有很多这样的例子,其中之一是 The Outline。 这就是启发了这种设计的实施。

很酷,我想。 我们可以做一些类似线性背景渐变或甚至背景图像的东西。 但是! 这不是设计的终点。 事实证明它也是动画的。 再次来自 The Outline

来自 The Outline 文章的屏幕截图 (来源)

哇! 真是太疯狂了。 老实说,我不知道该怎么处理它,因为我对初始想法中的任何一个进行动画处理都很困难,尤其是在跨浏览器支持方面。

那么,The Outline 是怎么做到的呢? 事实证明,它是 SVG。 我们可以制作一条波浪形的路径并轻松地对其进行动画处理。

查看笔 波浪 by Geoff Graham (@geoffgraham) on CodePen.

但是,它如何与链接一起使用呢? 嗯,我们可以将 SVG 用于 background-image 属性

查看笔 波浪 by Geoff Graham (@geoffgraham) on CodePen.

但是,这有点糟糕,因为我们无法真正对其进行动画处理。 我们需要更好的值。 但是,我们可以将内联 CSS 直接添加到 background-image 属性中的 SVG 中。 我们不能简单地将 SVG 代码复制粘贴到属性中,但我们可以使用一些适当的编码来实现。

查看笔 波浪 by Geoff Graham (@geoffgraham) on CodePen.

而且,由于 SVG 可以在标记中包含自己的样式,因此动画可以像在 HTML 文档头部或 HTML 中的内联 CSS 中一样,直接添加到 background-image 属性中。

查看笔 波浪 by Geoff Graham (@geoffgraham) on CodePen.

如果我们愿意,可以稍微改变一下它的样式。

查看笔 链接效果 - 波浪 by Geoff Graham (@geoffgraham) on CodePen.

真是太鼓舞人心了!

我不知道动画波浪是否能带来良好的用户体验,坦率地说,这不是这篇文章的重点。 重点是 The Outline 有一个有趣的想法,并用精巧的 CSS 实现。

这让我开始思考我们可以对链接进行哪些其他非标准(甚至非传统)的悬停样式。 再次,抛开可用性,尽情享受 CSS 的乐趣……

边框到背景效果

也许默认链接上的同一个底部边框可以在悬停时增长并成为链接的完整背景。

查看笔 链接效果 - 悬停时背景 by Geoff Graham (@geoffgraham) on CodePen.

哎呀,我们甚至可以水平地做类似的事情。

查看笔 链接效果 - 水平背景 by Geoff Graham (@geoffgraham) on CodePen.

带轮廓的文本效果

让我们去掉字体颜色,留下一个轮廓。

查看笔 链接效果 - 悬停时轮廓 by Geoff Graham (@geoffgraham) on CodePen.

凸起的文本效果

另一个想法是让文本突出显示,就像它在悬停时从页面中长出来一样。

查看笔 链接效果 - 悬停时凸起文本 by Geoff Graham (@geoffgraham) on CodePen.

字体交换效果

这太不切实际了,让我笑出声来,但为什么不呢?

查看笔 链接效果 - 悬停时交换字体 by Geoff Graham (@geoffgraham) on CodePen.

“调高音量,克里斯”效果

对不起,克里斯。 你知道你喜欢它。 ❤️

查看笔 链接效果 - 调高音量,克里斯! by Geoff Graham (@geoffgraham) on CodePen.

你能想出什么?

有想法吗? 请在评论中告诉我,我会把它们放到我创建的 CodePen 集合 中。