有没有想过网站如何创建那些具有发光、旋转效果的引人注目的按钮?这些效果可以吸引用户并提升网站的 UI/UX。让我们探索如何使用 CSS 和一些 JavaScript 逐步构建它们。
第 1 步:创建按钮布局
我们先来制作一个简单的按钮-
<button>WHY CHOOSE US</button>
button { width: 250px; height: 80px; border-radius: 3rem; outline: none; background: black; border: 2px solid transparent; color: white; cursor: pointer; } /* ... Other styles ... */
它看起来像这样-
第2步:添加渐变效果
现在,我们来谈谈一种特殊的梯度,称为圆锥梯度。你听说过吗?线性渐变沿直线平滑过渡颜色,径向渐变从圆心向外混合颜色,而圆锥渐变则围绕中心点过渡颜色,形成圆形或圆锥状图案。这是创建动态且视觉上有趣的设计的独特方式。
看看下面的区别-
我们将使用圆锥渐变来实现此效果。让我们将其添加到我们的按钮中 -
background: conic-gradient(from 0, transparent, white 10%, transparent 20%) border-box;
CSS 片段涉及圆锥渐变并使用边框框调整背景大小。以下是所发生事件的详细说明:
圆锥曲线梯度分解
圆锥曲线(从0开始,透明,白色10%,透明20%):
从 0 开始: 渐变从 0 度角(圆的顶部)开始并顺时针方向进行。
透明:渐变以完全透明的颜色开始。
白色 10%: 在总渐变周长的 10% 处,颜色过渡为白色。
透明 20%: 在渐变周长的 20% 处,它会过渡回透明。
此图案创建了一个被透明包围的白色“切片”。
边框
border-box: 渐变适用于包含元素内容、内边距和边框的区域。这意味着渐变将覆盖整个元素的框,直到边框的外边缘。
应用此效果后,按钮将如下所示 -
现在,我们将使用这个圆锥渐变作为按钮的渐变边框。我们怎样才能做到这一点?
我们将在这里使用盒子大小的力量。我们将为这个按钮制作多个背景。按钮的顶部背景将是纯色背景,其中 padding-box 作为 box-sizing,这意味着它不会拉伸到边框。请参阅下面的代码-
<button>WHY CHOOSE US</button>
所以,现在我们有一个黑色背景覆盖按钮,包括它的内容和填充。我们之前添加的圆锥曲线一直延伸到边界。由于边框是透明的,我们可以通过边框看到圆锥渐变的 2px 厚度。现在,按钮看起来像这样 -
第 3 步:动画渐变
我们为按钮添加了闪亮的发光效果!现在,让我们让它动起来。为此,我们需要一点 JavaScript。但首先,我们将更新 CSS,使其更加灵活和动态。
button { width: 250px; height: 80px; border-radius: 3rem; outline: none; background: black; border: 2px solid transparent; color: white; cursor: pointer; } /* ... Other styles ... */
这里,与上一节唯一的区别是,我们引入了一个名为 --angle 的 CSS 变量。 [from var(--angle, 0) 意味着如果 --angle 值未定义,则默认值为 0,与之前相同。] 现在我们将这个 ---angle 值从 0 更改为360 通过 JavaScript。结果,圆锥曲线梯度将从 0 度移动到 360 度,并产生发光的旋转效果。现在让我们看看 JavaScript 部分 -
background: conic-gradient(from 0, transparent, white 10%, transparent 20%) border-box;
操作非常简单。加载 DOM 内容后,我们调用一个名为rotate()的函数。该函数在每次迭代时将角度增加 1,并将该值设置为按钮的 CSS 变量 --angle。这最终改变了圆锥曲线的位置。我们使用名为 requestAnimationFrame 的内置函数迭代调用此函数。这是一个特殊的 Javascript 函数,如 setInterval 或 setTimeOut。让我们详细了解一下 requestAnimationFrame 函数 -
它的作用:
保持动画流畅:它将动画与屏幕的刷新率(通常为每秒 60 帧)同步,因此动画看起来不会断断续续。
节省电量:当用户切换到另一个选项卡时暂停动画,节省资源。
在完美的时间调用您的函数:它告诉您的动画逻辑何时需要更新,因此一切保持同步。
工作原理:
您为 requestAnimationFrame 提供一个要调用的函数(通常是您的动画逻辑)。它在浏览器在屏幕上绘制下一帧之前运行此函数。
然后,我们得到了最终结果。请参阅下面的 Codepen 以获取逐步更改-
现在您已经使用 CSS 和 JavaScript 创建了一个发光的旋转按钮!随意调整渐变、动画速度(知道我们该怎么做吗?将其留在评论中。),甚至添加您自己的自定义效果。这些技术是让您的 UI 脱颖而出的好方法。
想要更多创意 Javascript 动画或 CSS 按钮效果的创意吗?请在评论中告诉我,并敬请关注下一篇博文!
你也可以在这里找到我-
X
领英
以上是使用旋转发光动画创建引人注目的按钮效果的详细内容。更多信息请关注PHP中文网其他相关文章!

在本周的综述中:datepickers正在让键盘用户头痛,一个新的Web组件编译器,有助于与Fouc进行战斗,我们终于获得了造型列表项目标记,以及在您的网站上获得网络攻击的四个步骤。

在本周的Web平台新闻世界中,Google搜索控制台可以更轻松地查看爬行的标记,我们了解到自定义属性


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

WebStorm Mac版
好用的JavaScript开发工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。