资讯专栏INFORMATION COLUMN

利用CSS变量实现炫酷的悬浮效果

laoLiueizo / 2326人阅读

摘要:最近,我从网站上发现以一个好玩儿的悬停动画,也有了些自己的灵感。用包裹文本,以避免显示在按钮的上方。将和初始化为,当用户悬停在按钮上时,将其改为。

最近,我从 Grover网站上发现以一个好玩儿的悬停动画,也有了些自己的灵感。这个动画是将鼠标移动到订阅按钮上移动光标会显示相应的彩色渐变。这个想法很简单,但是它能使这个按钮脱颖而出,人们一下子就注意到它了,增加了点击的概率。

怎样才能达到这个效果,使我们的网站脱颖而出呢?其实,它并不像你想象的那么难!

追踪位置

我们要做的第一件事就是获取到鼠标的位置。

</>复制代码

  1. document.querySelector(".button").onmousemove = (e) => {
  2. const x = e.pageX - e.target.offsetLeft
  3. const y = e.pageY - e.target.offsetTop
  4. e.target.style.setProperty("--x", `${ x }px`)
  5. e.target.style.setProperty("--y", `${ y }px`)
  6. }

选择元素,等待,直到用户将鼠标移过它;

计算相对于元素的位置;

将坐标存在CSS的变量中。

是的,仅仅9行代码就让你能获知用户放置鼠标的位置,通过这个信息你能达到意想不到的效果,但是我们还是先来完成CSS部分的代码。

动画渐变

我们先将坐标存储在CSS变量中,以便能够随时使用它们。

</>复制代码

  1. .button {
  2. position: relative;
  3. appearance: none;
  4. background: #f72359;
  5. padding: 1em 2em;
  6. border: none;
  7. color: white;
  8. font-size: 1.2em;
  9. cursor: pointer;
  10. outline: none;
  11. overflow: hidden;
  12. border-radius: 100px;
  13. span {
  14. position: relative;
  15. }
  16. &::before {
  17. --size: 0;
  18. content: "";
  19. position: absolute;
  20. left: var(--x);
  21. top: var(--y);
  22. width: var(--size);
  23. height: var(--size);
  24. background: radial-gradient(circle closest-side, #4405f7, transparent);
  25. transform: translate(-50%, -50%);
  26. transition: width .2s ease, height .2s ease;
  27. }
  28. &:hover::before {
  29. --size: 400px;
  30. }
  31. }

用span包裹文本,以避免显示在按钮的上方。

将 width和height初始化为0px,当用户悬停在按钮上时,将其改为400px。不要忘了设置这种转换以使其像风一样

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/54923.html

相关文章

  • 利用CSS变量实现酷的悬浮效果

    摘要:最近,我从网站上发现以一个好玩儿的悬停动画,也有了些自己的灵感。用包裹文本,以避免显示在按钮的上方。将和初始化为,当用户悬停在按钮上时,将其改为。 最近,我从 Grover网站上发现以一个好玩儿的悬停动画,也有了些自己的灵感。这个动画是将鼠标移动到订阅按钮上移动光标会显示相应的彩色渐变。这个想法很简单,但是它能使这个按钮脱颖而出,人们一下子就注意到它了,增加了点击的概率。showImg...

    vincent_xyb 评论0 收藏0
  • 使用CSS创建一个酷的球体动画效果

    摘要:我最近看到了一个纯实现的球体动画效果经过研究上面的效果实现起来大致可以分为五个步骤,下面就来一一介绍。使用和生成一个圆圈创建一个圆圈的第一步是生成所有组成圆圈的粒子。 我最近看到了一个纯CSS实现的球体动画效果: showImg(https://segmentfault.com/img/bVbtIJD?w=396&h=373); 经过研究上面的效果实现起来大致可以分为五个步骤,下面就来...

    zacklee 评论0 收藏0
  • 使用CSS创建一个酷的球体动画效果

    摘要:我最近看到了一个纯实现的球体动画效果经过研究上面的效果实现起来大致可以分为五个步骤,下面就来一一介绍。使用和生成一个圆圈创建一个圆圈的第一步是生成所有组成圆圈的粒子。 我最近看到了一个纯CSS实现的球体动画效果: showImg(https://segmentfault.com/img/bVbtIJD?w=396&h=373); 经过研究上面的效果实现起来大致可以分为五个步骤,下面就来...

    jsdt 评论0 收藏0
  • 使用CSS创建一个酷的球体动画效果

    摘要:我最近看到了一个纯实现的球体动画效果经过研究上面的效果实现起来大致可以分为五个步骤,下面就来一一介绍。使用和生成一个圆圈创建一个圆圈的第一步是生成所有组成圆圈的粒子。 我最近看到了一个纯CSS实现的球体动画效果: showImg(https://segmentfault.com/img/bVbtIJD?w=396&h=373); 经过研究上面的效果实现起来大致可以分为五个步骤,下面就来...

    int64 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<