CSS3实现的发光动画按钮(有光随鼠标移动的悬停效果)
作者:admin 时间:2023-2-2 15:42:41 浏览:html5时代的网页设计,更多人喜欢把按钮做成具有鼠标悬停效果的动画按钮,这样的按钮令沉静冰凉的网页显得更有生机活泼。
如果你对动画按钮感兴趣,可以看看下面这些文章:
- 4款CSS 3D按钮点击过渡效果
- 16款精美的CSS3动画按钮(有悬停动画效果)
- 9个CSS鼠标悬停效果
- 6个CSS按钮边框过渡动画效果
- 30个漂亮的CSS渐变按钮,鼠标滑过(hover)动画效果
- 很好看的css3动画按钮鼠标悬停效果【2个实例】
- 漂亮悬停效果的CSS3动画按钮【5个实例代码】
在本文里,将介绍CSS3实现的发光动画按钮,该按钮具有光随鼠标移动的悬停效果。
HTML代码
HTML结构只有2、3行简短的代码:1个button
标签,一个名为“glow-button”的class类,button
标签里包含一个span
标签,该span
标签包含的是按钮的文字。
<button class="glow-button">
<span>Button</span>
</button>
CSS代码
CSS代码主要包含一个 .glow-button 的class类,该class具有颜色渐变的设计,还有动画设计,以及鼠标悬停效果设计,所以代码较多。
.glow-button {
--button-background: #09041e;
--button-color: #fff;
--button-shadow: rgba(33, 4, 104, 0.2);
--button-shine-left: rgba(120, 0, 245, 0.5);
--button-shine-right: rgba(200, 148, 255, 0.65);
--button-glow-start: #B000E8;
--button-glow-end: #009FFD;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
outline: none;
border: none;
font-family: inherit;
font-size: 16px;
font-weight: 500;
border-radius: 11px;
position: relative;
line-height: 24px;
cursor: pointer;
color: var(--button-color);
padding: 0;
margin: 0;
background: none;
z-index: 1;
box-shadow: 0 8px 20px var(--button-shadow);
}
.glow-button .gradient {
position: absolute;
inset: 0;
border-radius: inherit;
overflow: hidden;
-webkit-mask-image: -webkit-radial-gradient(white, black);
transform: scaleY(1.02) scaleX(1.005) rotate(-0.35deg);
}
.glow-button .gradient:before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
transform: scale(1.05) translateY(-44px) rotate(0deg) translateZ(0);
padding-bottom: 100%;
border-radius: 50%;
background: linear-gradient(90deg, var(--button-shine-left), var(--button-shine-right));
-webkit-animation: rotate linear 2s infinite;
animation: rotate linear 2s infinite;
}
.glow-button span {
z-index: 1;
position: relative;
display: block;
padding: 10px 0;
width: 132px;
border-radius: inherit;
background-color: var(--button-background);
overflow: hidden;
-webkit-mask-image: -webkit-radial-gradient(white, black);
}
.glow-button span:before {
content: "";
position: absolute;
left: -16px;
top: -16px;
transform: translate(var(--pointer-x, 0px), var(--pointer-y, 0px)) translateZ(0);
width: 32px;
height: 32px;
border-radius: 50%;
background-color: var(--button-glow, transparent);
opacity: var(--button-glow-opacity, 0);
transition: opacity var(--button-glow-duration, 0.5s);
filter: blur(20px);
}
.glow-button:hover {
--button-glow-opacity: 1;
--button-glow-duration: .25s;
}
@-webkit-keyframes rotate {
to {
transform: scale(1.05) translateY(-44px) rotate(360deg) translateZ(0);
}
}
@keyframes rotate {
to {
transform: scale(1.05) translateY(-44px) rotate(360deg) translateZ(0);
}
}
html {
box-sizing: border-box;
-webkit-font-smoothing: antialiased;
}
* {
box-sizing: inherit;
}
*:before, *:after {
box-sizing: inherit;
}
JavaScript代码
该实例的鼠标悬停效果需要用到JavaScript代码的配合来实现,需要引用到两个js文件,文件已包含在源码下载的压缩包里。
<script src='gsap.min.js'></script>
<script src='chroma.min.js'></script>
document.querySelectorAll(".glow-button").forEach(button => {
const gradientElem = document.createElement("div");
gradientElem.classList.add("gradient");
button.appendChild(gradientElem);
button.addEventListener("pointermove", e => {
const rect = button.getBoundingClientRect();
const x = e.clientX - rect.left;
const y = e.clientY - rect.top;
gsap.to(button, {
"--pointer-x": `${x}px`,
"--pointer-y": `${y}px`,
duration: 0.6 });
gsap.to(button, {
"--button-glow": chroma.
mix(
getComputedStyle(button).
getPropertyValue("--button-glow-start").
trim(),
getComputedStyle(button).getPropertyValue("--button-glow-end").trim(),
x / rect.width).
hex(),
duration: 0.2 });
});
});
总结
本文介绍了CSS3实现的发光动画按钮,该按钮具有光随鼠标移动的悬停效果,喜欢该效果的朋友可以收藏一下,或下载源码直接使用。
相关文章
- 纯CSS3实现的保存(save)、下载(download)按钮4种样式
- 纯CSS:鼠标移上后,链接按钮颜色显示渐变效果
- 4款CSS 3D按钮点击过渡效果
- 6个CSS按钮边框过渡动画效果
- 简单又好看的CSS单选按钮(radio)样式
- 30个漂亮的CSS渐变按钮,鼠标滑过(hover)动画效果
- CSS3颜色渐变按钮 鼠标划过变色
- 【8个实例】纯CSS按钮(button),简单漂亮实用
- CSS悬停效果按钮一简单实例(鼠标移到按钮上变成其他颜色)
- 很好看的css3动画按钮鼠标悬停效果【2个实例】
- 漂亮悬停效果的CSS3动画按钮【5个实例代码】
- 漂亮的伪元素CSS按钮5个实例代码
- 20个纯CSS3实现的彩色透明水晶按钮
相关文章
x
- 站长推荐