搜索
首页web前端css教程使用旋转发光动画创建引人注目的按钮效果

有没有想过网站如何创建那些具有发光、旋转效果的引人注目的按钮?这些效果可以吸引用户并提升网站的 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 ... */

它看起来像这样-

Create Eye-Catching Button Effect with Rotating Glow Animation

第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: 渐变适用于包含元素内容、内边距和边框的区域。这意味着渐变将覆盖整个元素的框,直到边框的外边缘。

应用此效果后,按钮将如下所示 -

Create Eye-Catching Button Effect with Rotating Glow Animation

现在,我们将使用这个圆锥渐变作为按钮的渐变边框。我们怎样才能做到这一点?

我们将在这里使用盒子大小的力量。我们将为这个按钮制作多个背景。按钮的顶部背景将是纯色背景,其中 padding-box 作为 box-sizing,这意味着它不会拉伸到边框。请参阅下面的代码-

<button>WHY CHOOSE US</button>

所以,现在我们有一个黑色背景覆盖按钮,包括它的内容和填充。我们之前添加的圆锥曲线一直延伸到边界。由于边框是透明的,我们可以通过边框看到圆锥渐变的 2px 厚度。现在,按钮看起来像这样 -

Create Eye-Catching Button Effect with Rotating Glow Animation

第 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中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
链接HTML中CSS文件的最终指南链接HTML中CSS文件的最终指南May 13, 2025 am 12:02 AM

链接CSS文件到HTML可以通过在HTML的部分使用元素实现。1)使用标签链接本地CSS文件。2)多个CSS文件可通过添加多个标签实现。3)外部CSS文件使用绝对URL链接,如。4)确保正确使用文件路径和CSS文件加载顺序,优化性能可使用CSS预处理器合并文件。

CSS Flexbox与网格:全面评论CSS Flexbox与网格:全面评论May 12, 2025 am 12:01 AM

选择Flexbox还是Grid取决于布局需求:1)Flexbox适用于一维布局,如导航栏;2)Grid适合二维布局,如杂志式布局。两者在项目中可结合使用,提升布局效果。

如何包括CSS文件:方法和最佳实践如何包括CSS文件:方法和最佳实践May 11, 2025 am 12:02 AM

包含CSS文件的最佳方法是使用标签在HTML的部分引入外部CSS文件。1.使用标签引入外部CSS文件,如。2.对于小型调整,可以使用内联CSS,但应谨慎使用。3.大型项目可使用CSS预处理器如Sass或Less,通过@import导入其他CSS文件。4.为了性能,应合并CSS文件并使用CDN,同时使用工具如CSSNano进行压缩。

Flexbox vs Grid:我应该学习两者吗?Flexbox vs Grid:我应该学习两者吗?May 10, 2025 am 12:01 AM

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

轨道力学(或我如何优化CSS KeyFrames动画)轨道力学(或我如何优化CSS KeyFrames动画)May 09, 2025 am 09:57 AM

重构自己的代码看起来是什么样的?约翰·瑞亚(John Rhea)挑选了他写的一个旧的CSS动画,并介绍了优化它的思维过程。

CSS动画:很难创建它们吗?CSS动画:很难创建它们吗?May 09, 2025 am 12:03 AM

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For

@KeyFrames CSS:最常用的技巧@KeyFrames CSS:最常用的技巧May 08, 2025 am 12:13 AM

@keyframesispopularduetoitsversatoryand and powerincreatingsmoothcssanimations.keytricksinclude:1)definingsmoothtransitionsbetnestates,2)使用AnimatingmatematingmultationmatingMultationPropertiessimultane,3)使用使用4)使用BombingeNtibalibility,4)使用BombingingWithjavofofofofofoffo

CSS计数器:自动编号的综合指南CSS计数器:自动编号的综合指南May 07, 2025 pm 03:45 PM

CSSCOUNTERSAREDOMANAGEAUTOMANAMBERINGINWEBDESIGNS.1)他们可以使用forterablesofcontents,ListItems,and customnumbering.2)AdvancedsincludenestednumberingSystems.3)挑战挑战InclassINCludeBrowsEccerCerceribaliblesibility andperformiballibility andperformissises.4)创造性

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热门文章

热工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),